主窗口下的消息框

时间:2011-06-07 15:22:46

标签: c# .net winforms winapi

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

任何想法,如何避免这个问题?

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

可能是您在第二个主题中不在主线程中的消息框

答案 2 :(得分:0)

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

public class Win32Window : IWin32Window
{
    public Win32Window(IntPtr val)
    {
        _handle = val;
    }

    readonly IntPtr _handle;

    public IntPtr Handle
    {
        get { return _handle; }
    }
}