主窗口下的消息框

本文关键字:消息 窗口 | 更新日期: 2023-09-27 17:58:30

有时我的消息框会显示在应用程序主窗口下。因此,消息框是不可见的,主窗口看起来像是挂起的,不响应任何输入。通过使用alt选项卡切换到另一个应用程序并返回,可以"解冻"主窗口,它最终会在主窗口上方的正确位置显示消息框。但这对用户来说并不明显。

有什么想法吗,如何避免这个问题?

UPD主窗口是原生的;我尝试过在指定父窗口和不指定父窗口的情况下使用MessageBox,但在两种情况下都遇到了相同的问题

主窗口下的消息框

通常在调用消息框函数时,它们会将"父"窗口作为参数。您将哪个窗口作为"父"窗口传递?

您可能在第二个线程中调用消息框,而不是在主线程

我不确定原因是什么,但使用我自己的包装器为本机父窗口修复了这个问题:

public class Win32Window : IWin32Window
{
    public Win32Window(IntPtr val)
    {
        _handle = val;
    }
    readonly IntPtr _handle;
    public IntPtr Handle
    {
        get { return _handle; }
    }
}