2010-12-06 16 views
9

現在、C#でアプリケーションを開発しています。ここでMessageBoxを表示しています。数秒後に自動的にメッセージボックスを閉じることはできますか?C#のメッセージボックスを自動的に閉じます

あなたは次のようにコードビハインドロードされたハンドラおよびタイマハンドラを含むとともに、独自のウィンドウを作成する必要があります
+0

実際 –

+6

.....タイマーを使用する - それ以外の場合は、あなたがにイベントを送信いじる開始する必要がありますし、独自のカスタムダイアログではなく、メッセージボックス - タイマーMessageBoxを閉じるためには、私は想像していました。 –

答えて

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()メソッドは、最初のパラメータとして所有者ウィンドウをとるオーバーロードを有しています。指定された時間が経過した後に閉じられる非表示のオーナーウィンドウを作成すると、その子メッセージボックスも閉じます。ここで

完全な答えである:https://stackoverflow.com/a/20098381/2190520

関連する問題