我正在处理一些我正在研究的WinForm应用程序的严重问题 目前,我正在使用Form1.ShowDialog();显示表格。此代码包含在后台工作程序中,后者查找数据库中的更改。使用Form1.ShowDialog();即使数据库有多处更改,也只允许一次打开1个表单。我想要发生的是,如果我的数据库中有多个更改,则可以立即打开多个表单。
当我使用Form1.Show();时,应用程序会爆炸。由于某种原因,Show()方法使表单无法正确显示(表单中的所有元素都缺失)。
我能做些什么让我的代码按照我想要的方式工作?
编辑:这是一段代码片段
//result is a linq result
foreach (var row in result)
{
Form1 Form = new Form1();
Form.ShowDialog();
}
答案 0 :(得分:1)
第一次看后,我可以告诉你:
答案 1 :(得分:1)
我头顶两点:
1)要打开多个表单,请使用非模态(无模式)方法(我认为 show()方法)。例如,请参阅http://msdn.microsoft.com/en-us/library/39wcs2dh.aspx
2)我不确定您是否可以从非UI线程调用UI相关方法。您可能希望从工作线程向UI线程发送事件,UI线程将调用show方法