繁体   English   中英

显示相同形式的多个实例?

[英]Showing Multiple Instances Of Same Form?

我正在使用的WinForm应用程序存在一些严重问题。
当前,我正在使用Form1.ShowDialog();。 显示表格。 此代码包含在后台工作程序中,该工作程序查找数据库中的更改。 使用Form1.ShowDialog(); 即使数据库有多个更改,一次也只允许打开一个表单。 我想发生的事情是,如果数据库中有多个更改,一次可以打开多个表单。

当我使用Form1.Show();时,应用程序崩溃了。 由于某种原因,Show()方法使表单无法正确显示(表单中的所有元素均丢失)。

我可以做些什么使我的代码按我想要的方式工作吗?

编辑:这是一个代码片段

//result is a linq result
foreach (var row in result)
{
Form1 Form = new Form1();
Form.ShowDialog();
}

初步查看后,我可以告诉您:

  • Showdialog无法按照您的预期方式工作:这种方法会使所有者在关闭对话框之前处于非活动状态。 在您的情况下,循环将在第一个showdialog处暂停,然后在您关闭窗体,重新打开一个新窗体时继续执行,依此类推,直到循环结束。
  • 至于“显示”问题,创建空表格,我需要更多信息。 其余的代码和您得到的异常。

从我的头顶来看两点:

1)要打开一个以上的表单,请使用非模态(无模)方法(我认为是show()方法)。 参见例如http://msdn.microsoft.com/en-us/library/39wcs2dh.aspx

2)我不确定您可以从非UI线程调用与UI相关的方法。 您可能要从辅助线程向UI线程发送事件,并且UI线程将调用show方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM