我有一个应用程序,其中使用单个子表单定义从父表单生成多个子表单(即frmParent生成frmChild的多个实例)。
每个孩子都有自己的主题 - 我希望能够独立地与每个孩子互动(我不喜欢MDI)。
那么 - 如果父表单已关闭,我该如何指示子表单自行关闭?
private void btn1_Click(object sender, EventArgs e)
{
Thread thread = new Thread(delegate ()
{
using (Child child = new Child())
{
child.MyName = "1";
child.ShowDialog();
}
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
private void btn2_Click(object sender, EventArgs e)
{
Thread thread = new Thread(delegate ()
{
using (Child child = new Child())
{
child.MyName = "2";
child.ShowDialog();
}
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
答案 0 :(得分:2)
作为基于注释的结论,所有UI组件应该只在一个线程上运行:主(UI)线程。这是规则。您不需要/不应该使用其他线程。因此,如果不在click事件处理程序中使用另一个线程,只需编写:new Child()。Show();