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:
Teşekkürler.Faydalı bir bilgi.
veritabanına nasıl kayıt yapabiliriz peki?
Yorum Gönder