Ayrıntılarıyla MessageBox

Merhaba arkadaşlar, bu makalemde ayrıntılı olarak MessageBox fonksiyonunu işleyeceğim.

Merhaba arkadaşlar, bu makalemde ayrıntılı olarak MessageBox fonksiyonunu işleyeceğim.

MessageBox, kullanıcılara uyarı vermek veya kullanıcıdan bir işlemin yapılıp yapılmayacağının onayını almak için kullandığız bir fonksiyondur.

MessageBox'ın Kullanımı;

MessageBox fonksiyonun alabileceği toplam 7 adet parametre vardır biz sadece 5 tanesini kullanacağız ama onlarında ne olduğuna değinmeden geçmeyeceğim.

Bizi çok fazla da ilgilendirmeyen (burayı hiç okumadan diğer paragraftan devam edebilirsiniz :) ) ilk parametremiz: IWin32Window parametresidir. Bu parametre ile MessageBox penceremizin görünümünü klasik Windows pencereleri şeklinde göstermemizi sağlıyor diyebilirim. Ama tek başına kullanılmıyor IWin32Window nesne = null; olarak belirlememiz ve daha sonra MessageBox'ın en son parametresi olan MessageBoxOptions ile de pencerenin şeklini belirleyebiliyoruz. Bu parametrenin alabileceği 4 adet değer var ama bunlarda istersek kullanacağımız RtlReading değeridir. Bu değer MessageBox'daki ikonun sağ tarafta gösterilmesini sağlayabiliyoruz.

Çok fazla kafanızı karıştırmak istemiyorum. Benimde kafam karışıyor gerçekten. Şimdi MessageBox'ın en sık kullanacağımız fonksiyonlarına geçelim.

MessageBox'ın en basit kullanım şekli aşağıdaki gibidir. Bu kullanım şeklinde kullanıcıya sadece Mesaj İçeriği'ni gösteriyoruz:


MessageBox.Show("Mesaj içeriği");



Bundan sonraki kullanımlarında yavaş yavaş kullanıcılara daha ayrıntılı bir pencere sunabileceğiz.

Bu kullanımda kullanıcıya hem Mesaj İçeri'ğini gösterebileceğiz hem de pencere başlığına bir Başlık yazabileceğiz:


MessageBox.Show("Mesaj içeriği", "Başlık");



Gelelim üçüncü kullanım şeklimize MessageBox pencereleri sadece mesaj vermek için kullanılmıyor. Ayrıca mesaj sonucunda da kullanıcıya işlem yaptırabiliyoruz. Aşağıdaki kullanım şekliyle kullanıcıya gösterdiğimiz pencerede MessageBox fonksiyonunun standart Tamam butonunun dışına çıkarak Tamam ve İptal butonlarını kullanabileceğiz:


MessageBox.Show("Mesaj içeriği", "Başlık", MessageBoxButtons.OKCancel);



MessageBoxButtons ile sadece Tamam ve İptal butonları değil ayrıca aşağıdaki butonları da kullanabiliriz:

MessageBoxButtons.AbortRetryIgnore: Bu komut pencerede Durdur, Yeniden Dene, Yoksay butonlarını göstermemizi sağlar.

MessageBoxButtons.OK: Bu komut pencerede Tamam butonunu göstermemizi sağlar.

MessageBoxButtons.OKCancel: Bu komut pencerede Tamam ve İptal butonlarını göstermemizi sağlar.

MessageBoxButtons.RetryCancel: Bu komut pencerede Yeniden Dene ve İptal butonlarını göstermemizi sağlar.

MessageBoxButtons.YesNo: Bu komut pencerede Evet ve Hayır butonlarını göstermemizi sağlar.

MessageBoxButtons.YesNoCancel: Bu komut pencerede Evet, Hayır ve İptal butonlarını göstermemizi sağlar.

Gördüğümüz gibi MessageBox fonksiyonumuz giderek renkli bir görünüm alıyor. Bu kullanım şeklinde de MessageBox'ımıza bir ikon resmi koyabiliyoruz:


MessageBox.Show("Mesaj içeriği", "Başlık", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);



Yukarıdaki örnek ile kullanıcıya bilgi ikonunun olduğu bir pencere gösteriyoruz. Ayrıya bu parametrede sadece bilgi ikonu ile sınırlı değil;

MessageBoxIcon.Asterisk: Bu komut pencerede genellikle bilgi mesajı vermede kullanılan "i" ikonunu göstermemizi sağlar.

MessageBoxIcon.Error: Bu komut pencerede genellikle hata mesajı vermede kullanılan kırmızı "X" ikonunu göstermemizi sağlar.

MessageBoxIcon.Exclamation: Bu komut pencerede genellikle hata mesajı vermede kullanılan sarı "!" ikonunu göstermemizi sağlar.

MessageBoxIcon.Hand: Bu komutta Error komutu ile aynı işlevdedir.
MessageBoxIcon.Information: Bu komutta Asterisk komutu ile aynı işlevdedir.

MessageBoxIcon.None: Bu komut ile herhangi bir ikon gösterilmez.

MessageBoxIcon.Question: Bu komut pencerede genellikle soru sorma işlemlerinde kullanılan "?" ikonunu göstermemizi sağlar.

MessageBoxIcon.Stop: Bu komutta Error komutu ile aynı işlevdedir.

MessageBoxIcon.Warning: Bu komut Exclamation komutu ile aynı işlevdedir.

Evet gelelim en son parametremize bu parametrede eklediğimiz butonlardan hangisinin aktif olacağını seçebileceğimiz 3 adet seçenek var. Button1, Button2 ve Button3:


MessageBox.Show("Mesaj içeriği", "Başlık", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);



Yukarıda gösterdiğim kullanımda kullanıcıya gösterilen pencerede İptal butonu aktif olacaktır.

MessageBoxDefaultButton.Button1: Bu komut penceredeki butonlardan ilkini aktif eder.

MessageBoxDefaultButton.Button2: Bu komut penceredeki butonlardan ikincisini aktif eder.

MessageBoxDefaultButton.Button3: Bu komut penceredeki butonlardan üçüncüsünü aktif eder.

Aktif derken pencere gösterildiğinde seçili butondur.

Şimdi örnek uygulamalarımıza geçerek MessageBox fonksiyonumuzun biraz işe yaradığını görelim:

Uygulama 1: Bu en basit MessageBox uygulamamızdır. Neden en basit olduğunu daha sonraki uygulamaları görünce anlayacaksınız.


MessageBox.Show("MessageBox kullanımında son nokta", "MessageBox Başlığıdır", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Information, MessageBoxDefaultButton.Button3);



Uygulama 2: Şimdi kullanıcıya Tamam ve İptal butonlarını gösteriyoruz ama ben kullanıcının neye tıkladığını nerden bileceğim diyorsanız bu uygulamada bunu nasıl yapabileceğimizi göreceğiz.

Uygulamamızda kullanıcıya hata yaptığına dair bir mesaj verelim ve mesaj sonucunda kullanıcı eğer Tamam butonuna tıklayınca "İşleminiz gerçekleşdi", İptal butonuna tıklayınca "İşleminiz iptal edildi" diye uyarı veren bir uygulama yapalım:


// Buradaki DialogResult ile MessageBox'dan dönen değer karşılaştırıyoruz.

if (MessageBox.Show("İşleminiz yapılırken hata oluştu.", "Hata Yaptınız", MessageBoxButtons.OKCancel) == DialogResult.OK)

{

    MessageBox.Show("İşleminiz gerçekteşti");

}

else

{

    MessageBox.Show("İşleminiz iptal edildi");

}

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

çok yararlı olmuş
Arkadaşlar daha ayrıntılı bilgi isterseniz elimden geldiği kadar yardımcı olurum.
cooook tesekkurler harıka olmus
c#'ı yeni öğrenen biri olarak söylüyorum cok güzel olmuş.. elinize sağlık cok teşekkürler..cok yararı dokundu.
WEB programcılığı okuyorum lis 3. sınıf suan C# öqrenioruz ve gerekten zor çok yardımcı bi site tesekkrler emeği geçenlerin elleri dert qörmesin :gul:
lis. 3 teki arkadaşım bu konu size anlatılmadımı acaba. :S çok basit bir konuyu metediyorsunuz. konuyu daha ayrıntılı anlatın lütfen. bunda bir sakınca yoktür. herhal.
software_B.A hocam bende bir öğrenci olarak arkadaşı daha iyi anlıyorum. Bu konuyu zaten bu gibi arkadaşlar için anlattım umarım faydası dokunur.
hyr ikinci dönm basladık C# 'a bu konu için deil genel olarak zor demek istemistim :)
Eyw hocam :)) OK-Cancel li diyaloglarda OK deyince yada Cancel deyince yaptırmak istediklerimi nasıl yapacağımı bilmiyordum. Makale ii oldu :)
Yararlı bir anlatım olmuş ama messagebox ın parantezlerini kapatmamışsınız.
teşekkürler hocam diger dersleride böyle anlatsalar faydalı olacak digerlerinden pek fazla bişe anlamıyorum:uzul:
çok güsel olmuş tşk ederim elinize sağlık
çok güsel olmuş tşk ederim elinize sağlık
eray01: o sorun benden kaynaklanmıyor. editorden kaynaklanan bir sorun.
bende yeni başlayanlardanım çok sağolun yarlı oldu
süper bi kaynak çok tsk cok faydalı oldu. :D

Yukarı Git