C# Formu Kontrollü Kapatmak (İki Kere Sormasına Çözüm)

Temmuz 04, 2017 Mustafa BÜKÜLMEZ 0 Yorum

Bu dersimizde C# Formu Kontrollü Kapatma işlemini göreceğiz


Selamlar,
Bu dersimizde C# kontrollü form kapatma işlemlerini göreceğiz. Peki bu ne işimize yarayacak??
Bu işlemi yapmaktaki amacım o anda sistemde kaç kişi açık? Kaç kullanıcı programı kullanıyor? X kullanıcısı kaç saattir sistemde? gibi soruların yanıtını bulmaktır.
Normal şartlarda bu şekilde bir kod işimizi görecektir.
C#
if (MessageBox.Show("Çıkmak istediğinize emin misiniz?", "Onay", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
      // sorularımıza yanıtları bu kısımda alıyoruz
      Application.Exit();
}
else
{
       e.Cancel = true;
}
Ancak sebebibi çözemediğim şekilde formu programı kapatırken iki kere soruyor. Aslında çözmek içinde çok uğraşmadım. Başka bir yöntem denedim. O yöntem biraz daha uzun ancak çok fazla zaman kaybetmemek için uzun yolu yazdım. Daha sonra ona da düzenleriz.
Hemen asıl kodlarımızı verelim.
C#
private bool Kapatsorgu;
DialogResult dr = DialogResult.No;
private void Menu_FormClosing(object sender, FormClosingEventArgs e)
{
  if (!Kapatsorgu) // ! False ise 
  {
       dr = MessageBox.Show("Çıkmak istediğinize emin misiniz?", "Onay", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
       Kapatsorgu = dr == DialogResult.Yes;
  }
  if (dr == DialogResult.Yes)
  {
       if (Kapatsorgu) // True ise
       {
           //sorularımızın cevaplarını aldığımız yer.
           Application.Exit();
       }
       Kapatsorgu = false;
  }
  else
  {
       e.Cancel = true;
  }   
}
Bu kadar arkadaşlar.
Bu şekilde aynı soruyu iki kere sormuyor.
Bu dersimizde bu kadar arkadaşlar.
Bol Kodlu Günler.
https://mustafabukulmez.com/

0 Yorum: