使用Windows窗体实现模式/对话框窗体?

时间:2011-07-11 08:35:29

标签: c# winforms modal-dialog

我们有这个应用程序使用跨应用程序域(在同一进程中的2个应用程序域)。

我们需要模仿Dialog / Model窗口,它将等待第二个app域的结果,然后才能继续。第二个应用程序域加载WPF表单(第一个应用程序域仍然是.Net 2表单)。我们将不得不使用这个插件方法,以便我们可以利用我们的新WPF而不会破坏我们的旧应用程序。

目前我正在使用ManualEventReset在第二个app域完成时发出信号,但这会冻结GUI,这样当我移动Dialog / Model窗口时,它不会重新绘制背景。仅在Windows XP上发生(Windows 7正常工作)

我想知道是否有办法实现模型窗口,以便它仍然允许消息通过,以便背景可以重绘自己。如果您需要更多细节,请告诉我

1 个答案:

答案 0 :(得分:1)

你可以打开一个常规的模态表单,立即隐藏自己并在另一个线程上打开所需的winforms表单...这样你就可以“死锁”一个线程,直到你的操作完成而不会阻止你的UI的消息处理。 。在锁定线程释放后退出模态状态,调用隐藏的表单close()(对UI线程调用Invoke())