Form Closing


Merhabalar,

Bu yazımızda formun kapatılma olayı üzerinde duracağız. Bazı programlarda Kapat butonuna bastığınızda “Gerçekten programı kapatmak istiyor musunuz?” şeklinde bir mesaj kutusu ile karşılaşırsınız.

Daha önce bunu merak ettiniz mi bilmiyorum fakat gelin programcıların bunu nasıl başardıklarını inceleyelim ve aynı mesajı biz de verelim.

Öncelikle adım adım giderek kendimize belli sorular soralım.

1.  Bu işlem için hangi event’i kullanacağım?

Bu mesaj form kapatılırken gösterildiği için doğal olarak Formun kapatılma (Form Closing) eventinden yararlanacağız.

2.  Kullanıcının cevabını nasıl yakalarım?

Söz konusu event içine Message box’ınızı yazarsınz ve kullanıcıdan bir cevap alacağımız için Message box’ın butonlarının amacınıza uygun olması için tasarlarsınız. Bunun için YesNo kullanabilirsiniz. Kullanıcının cevabı için de DialogResult size hizmet vermektedir.

3.  Cevaba göre formu nasıl yönlendireceğim?

Tam da bu soru düşünülüp cevabı bizim için hazırlanmıştır. FormClosingEventArgs’tan alınan bir nesnenin Cancel property’sinin true olması programın kapatılmasının önüne geçecektir.

Şimdi gelin bu süreci program dilinden çıkartarak Türkçeleştirmeye çalışalım. Formun kapatılma olayından (FormClosingEvents) alınan bir nesne içinde Cancel (iptal etmek) özelliğini barındırmaktadır. Dolayısıyla “e.Cancel = true” ifadesi formun kapatılmasının iptaline evet yanıtının verilmesinden başka bir şey değildir.

Yukarıdaki açıklamaların örneği olan kod bloğu aşağıdadır;

        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult dr = MessageBox.Show("Gerçekten programı kapatmak istiyor musunuz?", "Closing event", MessageBoxButtons.YesNo);

            if (dr == DialogResult.No)
                e.Cancel = true;
            else
                e.Cancel = false;
        }

Herkese iyi çalışmalar, hoşçakalın..

2 yorum:

Unknown 17 Eylül 2013 18:13  

Teşekkürler.Faydalı bir bilgi.

esra 4 Mayıs 2018 17:28  

veritabanına nasıl kayıt yapabiliriz peki?

Yorum Gönder