【发布时间】:2009-07-19 17:32:30
【问题描述】:
在 Form1 的按钮单击偶数处理程序中,我想创建 Form2。这是我的代码,
Form1 的 button1 的偶数处理程序
// button1 belongs to Form1
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2("www.google.com");
form2.ShowDialog();
}
Form2 构造函数
public Form2 (string str)
{
InitializeComponent();
address = str;
button2.Text = str; // button2 belongs to Form2
}
public Form2()
{
InitializeComponent();
}
我的问题和担忧是,按钮 1 事件处理程序由 Form1 的 UI 线程执行,如果我在 Form1 UI 线程内创建新的 Form2,并使用 UI 线程设置 Form2 的 UI 元素(button2.Text),是合法的?我的理解是每个表单都有它的所有者 UI 线程和 UI 元素(例如按钮)应该只由表单单独的所有者线程处理?如果我的代码有误,如果有人能告诉我在当前表单的事件处理程序中创建另一个表单并传递参数的优雅方法,我们将不胜感激。
我正在使用 VSTS 2008 + C# + .Net 2.0。
【问题讨论】:
标签: c# .net winforms visual-studio-2008