我在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);
}
任何解决方案......?
欢迎来到StackOverflow!
问题是,如果我从你发布的代码中正确理解它,就是你创建了Form2
的新实例,然后在Load
的Form2
event中你创建了一个新的Form1
实例,你需要的信息就是Form1
的实例你已经有了。
你已经有了一个Form1
的例子。我会通过两个选项中的两个来做到这一点:
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();
}
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();
}