Bu konuda sizlere messageboxların buton kontrollerini göstereceğim. Yazdığım programın mantığını anlamanız için uygulama mantığını anlatayım.
Windows forma hiçbir araç eklemiyorum. Uygulamada tetiklenme(events) işlemi formu kapatma(X) düğmesine bastığımda etkin olacak ve buton seçeneklerinden Evet aktif olursa Form kapanacak diğer durumlarda ise form çalışmaya devam edecek.
Daha önce tetiklenme olaylarından bahsetmediğim için burada biraz değineyim. Mesela en basitinden direk forma çift tıklayıp kod ekranına girdiğinizde şunu görürsünüz.

 private void Form1_Load(object sender, EventArgs e)
        {

        }

işte bu alan siz forma çift tıkladığınız dan dolayı çıktı ve program çalıştığında etkin olayı Form1_Load olduğundansayfa yüklendiği anda buradaki kodlar çalışır.

Bu uygulamada ise biz formumuzun Form1_FormClosing olayını kullandık.Bundan dolayı windows formekranını kapatmak istediğimizde süslü ({}) iki parantez arasındaki kodlar çalışır.

 

Form seçili haldeyken mouse ile sağ tıklayın Propertiesi seçin. veya Form seçili haldeyken (F4) tuşuna basın ve buradan soldaki resimde gözüken şimşek işaretine(events)tıklayın.
Buradan FormClosing olayını bulun ve çift tıklayın.  >DİKKAT< FormClosed olayına tıklamayın yoksa program çalışmaz.
Bu işlemide bitirdikten sonra kodumuzu alanımıza ekliyoruz.
Neden Closed değilde Closing derseniz;
FormClosing : Form kapanmadan hemen önce çalışacak olaylar burada yer alır.
FormClosed : Form kapandıktan sonra çalışacak olaylar burada yer alır.
Eğer Closed dersek formu kapatmayı iptal edemeyiz çünkü tetiklenmesi form kapandıktan sonra closing ise hemen önce olduğundan kapatma işlemini iptal edebiliriz.

Aşağıdaki örnekte form ekranını kapatmadan önce ne yapmak istediğinizi soran program kodları var. Aşağıyı inceleyerek mantığını çözebilirsiniz. Zaten basit bir mantığı var. İsterseniz örnek uygulamayı indirip kendi bilgisayarınız da da deneyebilirsiniz.

Uygulamayı indirmek için Tıklayınız…

Messagebox seçeneklerini if döngülerinde kullanabilmek için var Değişkenini kullandım.

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
var degisken = MessageBox.Show(“Kapatmak istediğinizden eminmisiniz?”, “form kapatılıyor!”, MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);
if (degisken == DialogResult.Yes)
{
this.Dispose();
}
else if (degisken == DialogResult.No)
{
e.Cancel = true;
}
else if (degisken == DialogResult.Cancel)
{
e.Cancel = true;
}
}

One Response to C# MessageBox Buton Kontrol

  1. mustafa ertürkmen diyor ki:

    kursiyer programı çalışıyorum
    kursiyer bilgileri normal kayıt işleminde ( problemsiz oluyor)
    diyalog kullanımı ile ayrı bir kurs grubuna kayıt olmak ister misiniz sorusuna evet derse bir kayıt daha olmasını ve sonrasında soru sormayacak şekilde kod oluşturamadım, diyalog hayır seçilirse problemsiz çalışıyor

    diyalogla evet derse bile ( toplam 2 ) kaydı geçmemesi tekrar sormaması
    yardımcı olur musunuz

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir