我最近发现默认情况下 MessageBoxes 不是默认显示时最顶层的表单,我想知道是否有人知道您不希望消息框显示在其他窗口顶部的任何情况?
当我在加载应用程序时开始显示启动画面时,我发现了这个问题,看起来我的程序仍在运行,但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);
}