2010-12-06 97 views
9

我目前正在C#中開發一個應用程序,在其中顯示一個MessageBox。如何在幾秒鐘後自動關閉消息框?在C中自動關閉消息框#

+0

使用定時器..... – 2010-12-06 00:32:10

回答

9

您需要創建自己的窗口,把代碼隱藏包含加載處理程序和定時器處理程序如下:

private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    Timer t = new Timer(); 
    t.Interval = 3000; 
    t.Elapsed += new ElapsedEventHandler(t_Elapsed); 
    t.Start(); 
} 

void t_Elapsed(object sender, ElapsedEventArgs e) 
{ 
    this.Dispatcher.Invoke(new Action(()=> 
    { 
     this.Close(); 
    }),null); 
} 

然後,您可以讓您的自定義消息框出現調用的ShowDialog() :

MyWindow w = new MyWindow(); 
w.ShowDialog(); 
3

System.Windows.MessageBox.Show()方法有一個重載,它將owner窗口作爲第一個參數。如果我們創建一個隱藏的所有者窗口,然後我們在指定的時間後關閉它,那麼它的子消息框也會關閉。

下面是完整的答案:https://stackoverflow.com/a/20098381/2190520