我有一个WPF应用程序,窗口变小,如果它被取消激活则移动到侧面。但是如果窗口上打开了消息框,我不希望发生此功能。有没有办法可以检查C#代码中是否有任何对话框打开?
答案 0 :(得分:11)
以静态类/方法包含对MessageBox的调用。如果调用此方法,则设置一个标记,表明MessageBox已打开。
这样的事情:
public class MessageBoxWrapper
{
public static bool IsOpen {get;set;}
// give all arguments you want to have for your MSGBox
public static void Show(string messageBoxText, string caption)
{
IsOpen = true;
MessageBox.Show(messageBoxText, caption);
IsOpen = false;
}
}
用法:的
MessageBoxWrapper.Show("TEST","TEST");
MessageBoxWrapper.IsOpen
但是你必须确保始终使用Wrapper来调用MessageBox
答案 1 :(得分:1)
打开MessageBox时在某处设置标志。在MessageBox关闭时取消设置。
处理停用时检查标志。
如果有可能一次打开多个MessageBox,那么你需要考虑一下,否则一次关闭就会让它看起来没有打开。