检查消息框是否打开WPF C#?

时间:2011-12-22 11:39:23

标签: c# wpf

我有一个WPF应用程序,窗口变小,如果它被取消激活则移动到侧面。但是如果窗口上打开了消息框,我不希望发生此功能。有没有办法可以检查C#代码中是否有任何对话框打开?

2 个答案:

答案 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,那么你需要考虑一下,否则一次关闭就会让它看起来没有打开。