请不要立即关闭问题。在以下线程中也讨论了几乎类似的问题。
但是,这些并不能解决我的问题。我的开发机器上从未出现过这个问题。它发生在用户机器中,但并非总是如此。事实上,它只发生了 3 或 4 次。
当它发生时,应用程序/调用表单似乎被冻结了。如果我能猜到(因为我没有在屏幕上看到它)关闭按钮在哪里并在调用的表单上单击它,它会关闭并且应用程序会返回可用状态,直到它再次出现。
我的视图封装在演示者中,所以我不是ShowDialog()
从视图中调用,而是通过演示者调用。
MainPresenter
{
MainPresenter(IMainView view)
{
_view = view;
}
…
…
OpenSecondView()
{
var secondPresenter =_presenterFactory.Create<SecondPresenter>();
secondPresenter.Ininialize(_view);
}
}
// Initialize method in the SecondPresenter
Initialize(owner)
{
_secondView.ShowDialog(owner);
}
我正在使用此处解释的 MVP 的观察演示者风格 http://www.aspiringcraftsman.com/2008/11/23/model-view-presenter-styles/
问题:
- 如何在我的开发机器中重现问题并修复它?
- 如果我使用
Show()
和设置TopMost = true
,会不会出现这个问题? - 我应该考虑哪些可能会导致此问题的事情?
如果Show()
绝对保证不会出现问题,我会选择Show()
. 我对此失去了信心ShowDialog()
。
任何帮助将不胜感激。
** 特定屏幕/视图不会出现此问题。它随机发生。
** 对于除主窗体之外的所有窗体,ShowInTaskBar 设置为 false。