2010-11-24 21 views

cevap

9
timer.Interval=5000; 
timer.Enabled=true; 
MessageBox.Show("Should close automatically"); 

Ön Zamanlayıcı'nın Tick EventHandler ile aşağıdaki pasajı: Bu bir web sayfasında ise

private void timer_Tick(object sender,EventArgs evt) { 
    timer.Enabled=false; 
    SendKeys.Send("{ESC}"); // SendWait as alternative 
} 
+0

+1; Bu DOES bir geçici çözüm olarak çalışır. Cevabım 'MessageBox' sınıfına özgüdür =) – BeemerGuy

+1

Bunun neden kötü olduğuna dair birtakım nedenler vardır - dahası, ilk önce bir mesaj kutusu açılmışsa ve dolayısıyla zaten kapatılmışsa. – Murph

2

MessageBox sınıfı ile mümkün değil; taklit eden ve bu özelliği kendinize ekleyen kendi formunuzu oluşturmanız gerekir.

+0

Peki, bunu Windows API ileti kutularıyla yapabilirsiniz. Sadece mesaj kutuları pencere tutamaçını bekletmeniz ve zamanlayıcı tetiklendiğinde bir WM_CLOSE mesajı göndermeniz yeterlidir. Pencerenin kapanış olayını not ettiğinizden emin olun ve zamanlayıcıyı bu durumda bırakın. Sadece biraz P/Invoke'a ihtiyacın var. Ama daha iyi bir çözüm, bu Q. –

+0

cevabım uyarınca bir iletişim kutusu kullanmamaktır. Muhtemelen "' MessageBox'un bu özelliği yoktur, bir geçici çözümün olması gerekir. – BeemerGuy

0

Bir ileti kutusu yanlış çözümdür. Bir ipucu penceresine ihtiyacın var.

+0

"İpucu penceresi" nedir? Eğer pencerelerdeki formlardaki bir şey benim için yeni ise - eğer yarattığınız bir şey varsa o zaman bu çok ince bir cevaptır. – Murph

+0

Eğer bir iş yapmak zorunda kalırsanız çok ince bir cevap var mı? Güncellemeler güncellendiğinde Windows’un gösterdiği mesaj türlerini düşünüyorum. Kromsuz bir Pencereyi kolayca gösterebilir ve 5 saniye sonra öldürürsünüz, ancak bazı standart sistem bileşenleri olmalıdır. –

0

, sen kullanabilirsiniz javascript veya bir oldukça güzel bir etki için jQuery. Bu genellikle "soluk" animasyonu olarak adlandırılır. Bir zamanlayıcı kullanır.

Bu yaklaşımla, gerçek bir uyarı veya MessageBox kullanmazsınız. <div> veya başka bir HTML öğesi kullanıyorsunuz.

javascript kullanarak yaptığınız şey için here kodunu bulabilirsiniz.

Ya da jQuery kullanıyorsanız, fadeOut'a bakın. İşte bir article.

İlgili konular