C# MessageBox İşinize Yarayacak Tüm Özellikleri yazım ile karşınızdayım. Yazılıma başladığımız zamanlardan beri MessageBox‘u hep kullanırız. Tabi yeteneklerimiz geliştikçe ve profesyonel programlar hazırlamaya başladıkça öyle kuru kuru MessageBox göstermek olmuyor. Örnek kullanım şekilleri ile birlikte başlığı, ikonları, tipleri ve butonlar gibi diğer özelliklerini anlatmaya çalışacağım. Bu yazımda işte bu konulara değineceğim. En çok kullanacağız özellikleri sırayla anlatacağım.
C# hakkındaki diğer yazılarımı da görmek isterseniz tıklayınız.
MessageBox Özellikleri
MessageBox C# ‘da adından da anlaşılacağı gibi isteğimiz doğrultusunda ekrana mesaj kutusu çıkarmaya yarar ve sıkça kullanırız. Lakin çeşitli kullanım şekilleri vardır. Şimdi o şekilleri beraber inceleyelim.
Sadece Mesaj
MessageBox.Show("merhaba");
MessageBox’ın en basit kullanım şeklidir. Bir kutunun içerisinde sadece yazı vardır. MessageBox’un başlığı da yok. Varsayılan olarak Tamam butonu vardır. İlk parametre her zaman mesaj kutusu içerisine yazılacak metindir. Örneği aşağıdaki gibidir.
Mesaj ve Başlık
MessageBox.Show("merhaba", "Selamlama");
İlk parametre her zaman mesaj kutusu içerisine yazılacak metindir. İkinci parametre ise mesaj kutusuna başlık olarak eklenir. Örneği aşağıdaki gibidir.
Mesaj, Başlık ve Butonlar
MessageBox.Show("merhaba", "Selamlama", MessageBoxButtons.AbortRetryIgnore);
Eklenen son parametrede mesaj kutusu butonları yer alır. Bunlar arasında da;
AbortRetryIgnore – Durdur, Yeniden Dene, Yoksay
OK – Tamam
OKCancel – Tamam, İptal
RetryCancel – Yeniden Dene, İptal
YesNo – Evet, Hayır
YesNoCancel – Evet, Hayır, İptal
Şeklinde 6 farklı şekilde buton seti gösterebilirsiniz. MessageBox’u kullandığınız yere ve amaca göre siz seçersiniz. Yukarıdaki kalın olarak işaretlediğim komutları yukarıdaki örnek kullanım kodunda görünen 3. parametresinde MessageBoxButtons.* kısmına yazmanız gerekmektedir. Aşağı doğru diğerlerini de göreceksiniz. Örnek bir görsel aşağıdadır.
Mesaj, Başlık, Butonlar, Simge ve Uyarı Sesi
MessageBox.Show("merhaba", "Selamlama", MessageBoxButtons.OK,MessageBoxIcon.Error); // çarpı MessageBox.Show("merhaba", "Selamlama", MessageBoxButtons.YesNo,MessageBoxIcon.Information); // i harfi MessageBox.Show("merhaba", "Selamlama", MessageBoxButtons.OKCancel,MessageBoxIcon.Exclamation); // ünlem MessageBox.Show("merhaba", "Selamlama", MessageBoxButtons.RetryCancel,MessageBoxIcon.Hand); // çarpı MessageBox.Show("merhaba", "Selamlama", MessageBoxButtons.YesNoCancel,MessageBoxIcon.None); // boş MessageBox.Show("merhaba", "Selamlama", MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question); // soru işareti MessageBox.Show("merhaba", "Selamlama", MessageBoxButtons.YesNoCancel,MessageBoxIcon.Stop); // çarpı MessageBox.Show("merhaba", "Selamlama", MessageBoxButtons.YesNoCancel,MessageBoxIcon.Warning); // ünlem MessageBox.Show("merhaba", "Selamlama", MessageBoxButtons.AbortRetryIgnore,MessageBoxIcon.Asterisk); // i harfi
Bazılarının simgesi aynı çıkıyor. Nedenini bende tam olarak bilmiyorum. Seçtiğiniz ikona göre uyarı sesleri farklı çıkıyor.
Hadi bir kaç örnek yapalım
Şimdi birkaç MessageBox ile örnek yapalım. Bunları genelde if şartları içerisinde kullanırız. MessageBox’u bilgi mesaj vermek, onay almak yada o anki duruma göre farklı işlemler yaptırabilmek için kullanırız. Tabi her yiğidin yoğurt yiyişi farklı olur derler. Bu sebeple farklı farklı kullanım şekilleri vardır. Duruma göre kendinize has bir kullanım şekli geliştirirsiniz. Zaten kendi yöntemlerinizi geliştirmeye başladığınızda bu işi öğrenmeye başlamışsınız demektir.
İşin aslında temel bir kullanım şekli var ancak ben o yöntemi hiç kullanmadım. Bu sebeple o yöntemi es geçiyorum.
İf ile MessageBox Kullanımı
if (Messagebox.Show("Kaydı onaylıyormusunuz?", "Onay Verin", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { // MessageBox butonları geriye DialogResult değeri döndürür. // MessageBoxtaki Evet'e tıklarsa buradaki kodlar çalışır. // kayıt işlemleri kod bloğu // DialogResult.Yes kullanabilmek için butonları MessageBoxButtons.YesNo olarak ayarlıyoruz. // MessageBoxButtons.OKCancel yapsaydık DialogResult.OK dememiz gerekirdi. } Else { MessageBox.Show("Kayıt işlemi tarafınızca iptal edilmiştir.", "Kayıt İptal", MessageBoxButtons.Ok,MessageBoxIcon.Information); // Hayır dediğimiz için bu alana girdi ve bir bilgi mesajı gösterdik. // MessageBoxButtons.OK eklemeden MessageBoxIcon.Information ekleyemiyoruz. yani önce buton sonra ikon }
Bilgi: MessageBox’ lar geri dönüş değeri olarak DialogResult tipi gönderir.
Örneğe bakacak olursak, Bunu genelde kaydetme, güncelleme gibi işlemlerden önce onay almak için kullanırız. Eğer açılan mesaj kutusunda kullanıcı “Evet” derse kayıt işlemi yapılır “Hayır” derse işlem yapılmaz. Eğer ki biz bunu if’in içerisinde bu şekilde yazmazsak mesaj kutusu yine görünür ama “Hayır” dese bile kayıt işlemi yapılır.
MessageBox’lar dialogresult verir dedik. DialogResult diyalog cevabı anlamına gelir. Bizde bu sayede kullanıcının hangi butona bastığını yakalar ve ona göre işlem yaparız. DialogResult tipleri ile bir form kullarak kendinize özel mesaj kutuları bile yapabilirsiniz.
Switch Case ile MessageBox Kullanımı
Yukarıdaki örnekte olduğu gibi if içerisinde de kullanabilirsiniz, switch case içerisinde de kullanabilirsiniz.
switch (MessageBox.Show("Merhaba", "Selamlama", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Information)) { case DialogResult.Abort: // Abort butonuna basıldığında yapılacak işlemler break; case DialogResult.Retry: // Retry butonuna basıldığında yapılacak işlemler break; case DialogResult.Ignore: // Ignore butonuna basıldığında yapılacak işlemler break; }
Bu kullanım şeklini her yerde göremezsiniz. Bu kullanım şekli tecrübe ile sabittir. Bu kullanımın amacı projeye performans kazandırmaktır.
Bilgi: Switch Case, İf’e göre daha performanslı çalışır. Sebebi ise yukarıdaki örneği if ile yaparsanız tüm koşulları tek tek kontrol edecektir. Bu konu hakkında ayrı bir yazı gelecektir. ;)
MessageBox İçerisinde Metod ile Kullanım
Bu son zamanlarda kullanmaya başladığım bir kullanım şeklidir.
string Islem() { string IslemNo=""; //kayıt işlemi //kayıt işlemini yapıp son REC numarasını aldık ve RECno değişkenine atayıp gönderdik. return IslemNo; } private void Button1_Click(object sender, EventArgs e) { MessageBox.Show(Islem() + " Nolu işlem başarılı"); }
Yukarıdaki örneği incelersek. String değer dönderen bir Islem metodumuz var. Yani bu ne demek?. Yazdığımız kodları işleyecek ve bize bir değer oluşturacak. Bu şekildeki metodları atıyorum
textbox1.Text = Islem();
şeklinde de kullanabiliriz.
Hazırladığımız Islem metodunu MessageBox’un mesaj parametresine yazdık. Butona tıkladığımızda kutu oluşacak ama henüz görmeyeceğiz. kutu oluşturulurken, Islem metoduna giriyor. Dediğimiz işlemleri yapıyor. Geri dönen değeri de kutunun mesaj kısmına yazıyor ve kutuyu oluşturmaya devam ediyor. kutu tamamlandığında ise “XX Nolu işlem tamamlandı” şeklinde bir mesaj göreceğiz. Buradaki XX değeri Islem metodumuzdan gelen değerdir.
Mesaj kutusu konusu şimdilik bu kadar dostlar. Daha fazla örnek veya bilgi isterseniz yorum atabilirsiniz. Yazım sizler için faydalı olduysa oy vererek bana bildirebilirsiniz.
Ayrıca Microsoft’un sitesinden tüm ayrıntılarına buradan ulaşabilirsiniz.
C# hakkındaki diğer yazılarımı da görmek isterseniz tıklayınız.
Sağlıcakla ve takipte kalın. ;)
MessageBox’ta çıkan evet/hayır butonlarını ben yazmak istiyorum.Mesela ‘Evet’ yerine ‘Devam Et’ ya da ‘Tamam’ yerine ‘Anladım’ gibi daha samimi sözcükler kullanmam gerekiyor.Bunu yapmam mümkün mü?
Mevcut olanı değiştirme kısmını daha önce denemiştim ama hiç tavsiye etmiyorum. Çünkü bir sürü sorun yaşatıyor.
Ama kendinize özel mesaj ekranı (Form) ile DialogResult değişken tipini geri dönüş değerleri kullanarak yapabilirsiniz..
Fikir vermesi amacıyla senin için bir ders hazırladım. Aşağıdaki linkten ulaşabilirsin.
https://mustafabukulmez.com/2019/04/02/c-ozel-messagebox-yapimi/
messagebox kutusunu farklı renkte ve içindeki yazıyı farklı renkte göstermek için ne yapabilirim?
O kadarı ile hiç uğraşmadım ama MessageBo sınıfına müdahele etmek gerekebilir. Buna göre bir arama yapabilirsiniz.