Dialog MessageBox有时隐藏在主窗体后面

sgm*_*ore 26 c# messagebox winforms

我们的一些非技术用户遇到问题,我们的应用程序中的对话框有时可能会显示在主窗体后面,并且应用程序不接受任何输入,直到消息框(他们看不到)被取消.

应用程序是用C#编写的,消息框是标准的,例如代码可以像MessageBox.Show(消息,标题)一样简单,消息框可以由主UI线程创建(即不是某些后台线程).应用程序不必全屏运行,但我们90%的用户都是全屏运行它.

大多数时候((可能> 99%)消息框显示正确,我从来没有设法看到它出错了,但我看到一台机器出错了.

我注意到的一件事是,如果你有一个显示对话框的应用程序,那么当你查看你的任务管理器时,你只能在应用程序列表中看到一个条目.每当隐藏消息框时,您将看到两个条目,一个用于主应用程序,另一个用于此消息框.

一旦你知道发生了什么事情就很容易解决问题,但是我们的一些非技术用户对此感到困惑并最终关闭了他们的计算机.(而那些使用远程桌面的人在解决问题时更加困惑).

我不认为它与操作系统有关,因为我已经看到它发生在Vista中并且被告知它也发生在Windows 2003服务器上的终端会话中.

有什么事情知道为什么会发生这种情况,更重要的是,如果可以做任何事情来避免它吗?

Mat*_*t B 23

MessageBox.Show()方法的一些重载将IWin32Window参数作为第一个参数.如果你传递你的表格作为第一个参数,它应该防止这种情况发生.