2014-11-17 11 views
5

için kalıcı olduğunu ... Ben genellikle bir garip bir şey bugün benim uygulamayla oluyor ...MessageBox benim ilk WinForms uygulama üzerinde çalışıyorum masaüstüne

web uygulamalarını yazın. Uygulamayı bilgisayarımda çalıştırırsam veya iş arkadaşım bilgisayarında çalıştırırsa, MessageBox'larım yalnızca uygulamam için kalıcı olur. İstenen davranış budur. Kullanıcılarım, bir mesaj kutusu belirirse ve mesaj kutusundaki "Tamam" ı tıklamak, uygulamamın "duraklatmasını" ve devam etmelerine izin vermek için ayrı bir uygulamada manuel düzenlemeler yapabilmelidir.

Bu öğleden sonra iki son kullanıcı bilgisayarında uygulamanın bir beta sürümünü yüklemeye gittik ve herhangi bir nedenle uygulamayı bilgisayarlarından birinde çalıştırdığımızda, mesaj kutuları masaüstüne geçiyordu - başka hiçbir şey odaklanamaz "Tamam" tıklanana kadar. Bu davranış benim uygulama için büyük bir soruna neden oluyor.

Bu makinenin kullanıcı davranışında neden farklı olabileceğini bilmiyorum. Bilgisayarım - Win7 64-bit, iş arkadaşımın bilgisayarı - Win7 32-bit, iki kullanıcının bilgisayarı Win7 32-bit. Tüm. Net Framework 4.5 veya 4.5.1 yüklü.

Herhangi bir öneri?


GÜNCELLEME:

2014.11.17 - Hans Passant Ben cevap olarak onun tepkisini işaretlediğiniz edecek bir açıklama yerine bir cevap yayınlanmıştır olsaydı

DialogResult result = MessageBox.Show("The Style field did not pass validation. 
         Please manually fix the data then click OK to continue.", 
         "WARNING", MessageBoxButtons.OK, 
         MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); 
+0

MessageBox'unuzda 'SetForeGround' işlevini denediniz mi? MsgBox ("İleti", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxSetForeground, "Başlık") – Alex

+0

@Alex MsgBoxSetForeground ne yapar? MSDN'de bulduğum kısa küçük bulanıklık, benim için yeterince iyi açıklamıyor. – CDR12

+0

MessageBox'unuzla bir çeşit "Öne getir" yapmanız gerekiyor. Bu şekilde, masaüstünüzde modal olmamaları, ancak açılan en son uygulama pencerelerinde olmamaları gerekir. Mesaj kutunuzu nasıl görüntülersiniz? Hangi kod satırı bu? – Alex

cevap

1

ekleyerek yapılabilir.

Bu

Sorunu çözüldü nasıl:

DialogResult result = MessageBox.Show(t2tWindow, "The Style field did not pass 
         validation. Please manually fix the data then click OK 
         to continue.", "WARNING", MessageBoxButtons.OK, 
         MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); 

Bu kod kod arkasında değil formun içinde, ayrı bir "yarar" sınıfında, yani böylece bir yöntem haline IWin32Window parametre geçmek zorunda Show() yöntemine iletebilirim.

İlgili konular