我最近发现,默认情况下MessageBox不是最顶层窗口显示,我想知道是否有任何情况下你不希望消息框在其他窗口之上显示?
当我开始在加载应用程序时显示闪屏界面时,我发现了这个问题。我的程序看起来仍在运行,但是有一个MessageBox在闪屏界面后面等待输入... 闪屏界面显示在调用消息框的线程不同的线程上,所以我想这就是为什么它没有出现在闪屏界面上方的原因;但这仍然无法解释为什么MessageBox默认情况下没有MB_TOPMOST标志。
编辑
为了更好地澄清:
最终我不得不做类似于以下内容来创建一个消息框(代码不完全正确,是根据记忆写的)
[DllImport("User32.dll")]
private int extern MessageBox(windowhandle, message, caption, flag);
public static void MessageBox(windowhandle, string message, string caption)
{
MessageBox(windowhandle, message,caption, MB_TOPMOST);
}
System.Windows.Forms.MessageBox
而不是System.Windows.MessageBox
。 - JKennedy