访问Form2中的SelectedPath

问题描述 投票:0回答:1

我在Form1中有两个表单,FolderBrowserDialog,我想在表单2中使用SelectedPath。我不知道为什么但是当我单击Form1按钮显示Form2时,将出现此错误:

无效的URI:URI为空

我设置了Form Control Modifiers:Public和FolderBrowseDialog Seletedpath不能转移到Form2

表格1:

private void button1_Click(object sender, EventArgs e)
{
   FolderBrowserDialog MyFolderBrowse = new FolderBrowserDialog();
   if(MyFolderBrowse.ShowDialog()==DialogResult.OK)
   {
      txtpath.Text = MyFolderBrowse.SelectedPath;
   }
}

private void Showfrm2Btn_Click(object sender, EventArgs e)
{
  Form2 Frm2 = new Form2();
  Frm2.ShowDialog();
}

表格2:

private void Form2_Load(object sender, EventArgs e)
{
   Form1 Frm1 = new Form1();
   webBrowser1.Url = new Uri(Frm1.txtpath.Text);
}

任何解决方案......?

c# winforms
1个回答
0
投票

欢迎来到StackOverflow!

问题是,如果我从你发布的代码中正确理解它,就是你创建了Form2的新实例,然后在LoadForm2event中你创建了一个新的Form1实例,你需要的信息就是Form1的实例你已经有了。

你已经有了一个Form1的例子。我会通过两个选项中的两个来做到这一点:

  1. Form2中创建一个公共属性,并在创建Form2实例时分配它 public class Form2: Form { //{...} public string SelectedPath { get; set;} //{...} private void Form2_Load(object sender, EventArgs e) { webBrowser1.Url = new Uri(this.SelectedPath); } } private void Showfrm2Btn_Click(object sender, EventArgs e) { Form2 Frm2 = new Form2(); Frm2.SelectedPath = txtpath.Text; Frm2.ShowDialog(); }
  2. Form2构造函数中创建一个参数,并从Form1传递选定的路径 public class Form2: Form { //{...} private string _selectedPath; public Form2(string selectedPath) { _selectedPath = selectedPath; } //{...} private void Form2_Load(object sender, EventArgs e) { webBrowser1.Url = new Uri(_selectedPath); } } private void Showfrm2Btn_Click(object sender, EventArgs e) { Form2 Frm2 = new Form2(txtpath.Text); Frm2.ShowDialog(); }
© www.soinside.com 2019 - 2024. All rights reserved.