C#

2010-12-06 9 views
9

içinde otomatik olarak kapat ileti kutusu Şu anda bir MessageBox görüntülediğiniz C# içinde bir uygulama geliştiriyorum. Birkaç saniye sonra mesaj kutusunu otomatik olarak nasıl kapatabilirim?C#

+0

kullanımı Nitekim bir zamanlayıcı ..... –

+6

: Burada

tam cevabıdır Bunu kapatmak için MessageBox'ı hayal ediyorum. –

cevap

9
aşağıdaki gibi kod arkasında yüklü bir işleyici ve zamanlayıcı işleyicisi içeren, kendi Pencere oluşturmanız gerekir

:

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

Ardından özel bir ileti kutusu ShowDialog arayarak görünmesini sağlayabilirsiniz() :

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

System.Windows.MessageBox.Show() yöntemi ilk parametre olarak bir sahibi pencere alan bir aşırı vardır. Belirli bir süreden sonra kapattığımız bir görünmez Pencere Sahibi yaratırsak, çocuk mesaj kutusu da kapanır. aksi takdirde olayları gönderme kurcalıyor başlamak zorunda olacak ve bir MessageBox yerine kendi özel iletişim - zamanlayıcı - https://stackoverflow.com/a/20098381/2190520