有时我的消息框会在的应用程序主窗口下显示。因此,消息框是不可见的,主窗口看起来像是被绞死,并且不响应任何输入。可以通过使用alt-tab切换到另一个应用程序并返回来“解冻”主窗口,最后在它的正确位置 - 主窗口上方显示消息框。但这对用户来说并不明显。
任何想法,如何避免这个问题?
UPD主窗口是原生的;我已经尝试过使用和不指定父窗口的MessageBox,但在两种情况下都有相同的问题
答案 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; }
}
}