我有两种形式,即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);
}
任何解决方案...?
答案 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
的实例。我可以通过两个选项之一来做到这一点:
在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