【发布时间】:2013-10-07 10:39:37
【问题描述】:
当应用程序启动时,从另一个线程显示启动画面。 但是,如果在启动过程中出现错误 - 将显示消息框。问题是:消息框显示在启动画面下方。我使用过 IWin32Window 所有者属性,甚至尝试使用 MessageBoxOptions.DefaultDesktopOnly 属性,但 id 没有帮助。
我该如何处理这种情况?
PS: 试图创建不可见的窗口,设置 TopMost - 并显示 MessageBox。没用。
【问题讨论】:
-
您不应使用 UI 以外的其他线程来显示 Windows(Form、MessageBox、SplashScreen 等)
-
@SriramSakthivel:这并不普遍。您可以为每个窗口使用不同的线程。
-
@Douglas 这很适合争论,但不适合现实!我知道窗口与它创建的线程有 1->1 关系,但你不能为你创建的每个窗口创建专用线程
-
@SriramSakthivel:您不仅可以为每个窗口创建一个专用线程,而且如果您的应用程序的 UI 包含超过几个基本要素。几年后,众核时代将与我们同在,继续在单个线程上运行大量处理的应用程序很快就会被弃用。
-
@Douglas 听起来不错,让我们看看 :)
标签: c# winforms messagebox