访问Form2中的SelectedPath

时间:2018-12-11 03:25:41

标签: c# winforms

我有两种形式,即Form1中的FolderBrowserDialog,并且我想在Form 2中使用SelectedPath。 我不知道为什么,但是当我单击Form1按钮以显示Form2时,将出现此错误:

  

无效的URI:URI为空

我设置了表单控件修饰符: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);
}

任何解决方案...?

1 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow!

问题是,如果我从发布的代码中正确理解它,则是您创建了Sub distribute() Dim sh As Worksheet Dim k As Long, i As Integer Set sh = ThisWorkbook.Sheets("Data") k = sh.Range("A1048576").End(xlUp).Row For i = 2 To k With Worksheets("Template") .Cells(3,2).Value = sh.Cells(i,1).Rows(i) .Cells(3,4).Value = sh.Cells(i,2).Rows(i) .Cells(8,4).Value = sh.Cells(i,3).Rows(i) .Cells(5,2).Value = sh.Cells(i,4).Rows(i) .Copy After:=Sheets(Sheets.Count) End With Next i End Sub 的新实例,然后在Form2的{​​{1}}事件中创建了创建一个Load的新实例,您需要的信息就是您已经拥有的Form2的实例。

您已经有一个Form1的实例。我可以通过两个选项之一来做到这一点:

  1. Form1中创建一个公共属性,并在创建Form1实例时进行分配

    Form2
  2. 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