首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ShowDialog(所有者)隐藏在后面/没有显示,即使我提供所有者IWin32Window

ShowDialog(所有者)隐藏在后面/没有显示,即使我提供所有者IWin32Window
EN

Stack Overflow用户
提问于 2011-09-20 21:02:31
回答 2查看 3.7K关注 0票数 3

请不要马上结束这个问题。下面的线程也讨论了几乎类似的问题。

  1. Windows Forms and ShowDialog problem
  2. Form.ShowDialog() or Form.ShowDialog(this)?

但是,这些并不能解决我的问题。这个问题从来没有发生在我的开发机器上。它发生在用户机器中,但并不总是这样。事实上,它只发生了3或4次。

当发生这种情况时,似乎冻结了应用程序/调用表单。如果我能够猜测(因为我没有在屏幕上看到)关闭按钮在哪里,然后在被调用的表单上单击它,它就会关闭,应用程序会回到可用状态,直到再次发生。

我的视图封装在演示程序中,所以我不是从视图中调用ShowDialog(),而是通过演示程序调用。

代码语言:javascript
复制
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/

问题:

如何在我的开发机器中重现问题并进行修复?如果我使用occur?

  • What和set TopMost = true,那么这个问题是否有可能是我应该考虑的导致problem?

的原因?

如果Show()绝对保证问题不会发生,我将使用Show()。在这个问题上,我对ShowDialog()失去了信心。

任何帮助都将不胜感激。

**特定屏幕/视图不会出现此问题。它是随机发生的。

**对于除主窗体之外的所有表单,ShowInTaskBar设置为false。

EN

回答 2

Stack Overflow用户

发布于 2011-09-23 10:10:37

您是否尝试在表单的load事件中添加一个this.Activate(),因为我遇到了类似的问题。

票数 0
EN

Stack Overflow用户

发布于 2011-09-27 13:34:13

您可以尝试对表单使用TopMost = true

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7491727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档