请不要马上关闭这个问题。在以下主题中也讨论了几乎相似的问题。
但是,这些并不能解决我的问题。 我的开发机器中从未发生过这个问题。它发生在用户机器上,但并非总是如此。实际上它只发生了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。
答案 0 :(得分:0)
您是否尝试在表单的加载事件中添加this.Activate()
,因为我遇到了类似的问题。
答案 1 :(得分:0)
您可以尝试将TopMost = true
用于表单