2010-12-06 15 views
9

Ich entwickle gerade eine Anwendung in C#, wo ich eine MessageBox anzeige. Wie kann ich die Nachrichtenbox nach einigen Sekunden automatisch schließen?Automatisches Schließen der Nachricht in C#

+0

Verwendung ein Timer ..... –

+6

der Tat - ein Timer - und Ihr eigener Dialog statt einer MessageBox, sonst werden Sie mit dem Senden von Ereignissen starten müssen, um das Hantieren an die MessageBox um es zu schließen, würde ich mir vorstellen. –

Antwort

9

Sie benötigen, um Ihre eigenen Fenster, mit der Code-behind enthält einen geladenen Handler und einen Timer-Handler erstellen, wie folgt:

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); 
} 

Sie dann Ihre benutzerdefinierte Nachricht Feld erscheinen können Showdialog unter dem Rufnummer() :

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

die System.Windows.MessageBox.Show() Methode hat eine Überlast, die einen Eigentümer Fenster als ersten Parameter nimmt. Wenn wir ein unsichtbares Eigentümer-Fenster erstellen, das wir dann nach einer bestimmten Zeit schließen, wird auch die untergeordnete Nachrichtenbox geschlossen. Hier

ist die vollständige Antwort: https://stackoverflow.com/a/20098381/2190520

Verwandte Themen