C# ShowDialog(所有者)隐藏在/未显示,即使我提供所有者IWin32Window
请不要马上结束这个问题。下面的线程中也讨论了几乎类似的问题 但是,这些并不能解决我的问题。 这个问题从未在我的开发机器中出现过。它发生在用户计算机中,但并不总是如此。事实上,它只发生了3到4次 当这种情况发生时,应用程序/调用表单似乎被冻结。如果我能猜到(因为我没有在屏幕上看到它)关闭按钮的位置并在被调用的表单上单击它,它就会关闭,应用程序会返回到可用状态,直到再次出现 我的视图封装在presenter中,因此我不是从视图中调用C# ShowDialog(所有者)隐藏在/未显示,即使我提供所有者IWin32Window,c#,.net,winforms,view,krypton-toolkit,C#,.net,Winforms,View,Krypton Toolkit,请不要马上结束这个问题。下面的线程中也讨论了几乎类似的问题 但是,这些并不能解决我的问题。 这个问题从未在我的开发机器中出现过。它发生在用户计算机中,但并不总是如此。事实上,它只发生了3到4次 当这种情况发生时,应用程序/调用表单似乎被冻结。如果我能猜到(因为我没有在屏幕上看到它)关闭按钮的位置并在被调用的表单上单击它,它就会关闭,应用程序会返回到可用状态,直到再次出现 我的视图封装在presenter中,因此我不是从视图中调用ShowDialog(),而是通过presenter调用 Mai
ShowDialog()
,而是通过presenter调用
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);
}
MainPresenter
{
主演示者(IMainView视图)
{
_视图=视图;
}
…
…
OpenSecondView()
{
var secondPresenter=_presenterFactory.Create();
第二个演示者。初始化(\u视图);
}
}
//在SecondPresenter中初始化方法
初始化(所有者)
{
_secondView.ShowDialog(所有者);
}
我正在使用这里解释的MVP的演示者风格
问题:
Show()
并设置TopMost=true
,是否可能出现此问题
会发生什么Show()。我对这方面的ShowDialog()
失去了信心
任何帮助都将不胜感激
**特定屏幕/视图不会出现此问题。它是随机发生的
**对于除主窗体以外的所有窗体,ShowInTaskBar都设置为false。您是否尝试在窗体的加载事件中添加一个this.Activate()
,因为我遇到了类似的问题。您可以尝试对窗体使用TopMost=true
您的代码片段无法诊断此问题。@HansPassant我同意,我在这里发布它们是为了说明我是如何调用视图的,如果这很重要的话。@HansPassant如果你有兴趣查看任何特定的代码,我可以在这里发布。你能解释一下为什么我需要调用这个。Active()?我看到对话框弹出,但在当前表单后面,这意味着必须使用alt tab键才能获得对话框。这就是你提到的问题吗?你有没有找到一个解决方案,因为它已经有一段时间了。