264 Görüntülenme

C# Formun Kapanmasını Nasıl Engelleriz?

C# Formun Kapanmasını Nasıl Engelleriz?
5 (100%) 3 Oy

C# Formun Kapanmasını Nasıl Engelleriz? dersimiz ile C# eğitimlerimize devam ediyoruz. Bu işlem birçok yerde lazım olan bir işlemdir. Bu konu hakkında daha önceleri bir çok soru almıştım ve bu sebeple C Sharp Formun Kapanmasını Nasıl Engelleriz konusunu nasıl yapılacağını göstermiştim. Yapmamız gereken işlem çok kısadır.

C# hakkındaki diğer dersler için tıklayınız.

C Sharp Formun Kapanmasını Nasıl Engelleriz

Direk kodu vermek yerine bir senaryomuz olsun ve o senaryo üzerinden işlem yapalım. Diyelim ki, X formu açıldığında bir takım işlemler yapılması gereksin. Aksi takdirde kullanıcı o formu kapatamasın…

Bool IslemOK = false;
// işlemin yapılıp yapılmadığını bu değişken sayesinde anlayacağız.
// Bu tarz işlemlerde yani sadece iki şart olacak durumlarda bool kullanın
// Bool sadece 0 ve 1 tutacağı için RAM'de daha az yer tutar ve performans açısından önemlidir
// Sadece bir tanesi farkedilmez belki ama çoğaldıkça farkedilecektir.
private void btn_kaydet_Click(object sender, EventArgs e)
{
// işlemler....
IslemOK = true;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if( IslemOK  == false)
{
e.Cancel = true;
//e.Cancel ile formun kapanmasını engelliyoruz.
MessageBox.Show("Gerekli işlemleri yapmadan formu kapatamazsınız.");
}
}

Örnekte gördüğünüz gibi form’ un “FormClosing” eventi içerisinde e.Cancel komutu ile formun kapanmasına engel oluyoruz.

c# formun kapanmasını engelleme

Durum hakkında mesaj vermek zorunda değilsek kodlarımızı biraz daha değiştirerek yazacağımız kodları azaltabiliriz. Ancak başkaları için yada uzun zaman sonra baktığınızda ilk bakışta kodlar idrak edilemeyebilir. 😀

Mesaj göstermemiz gerekmiyorsa….

        bool IslemOk = true;    
private void button1_Click(object sender, EventArgs e)
{
//islemler....
IslemOk = false;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = IslemOk;
}

Kodlarımızı açıklayalım.

FormClosing eventi içerisinde formun kapanmasını engelleyen komutumuz olan ” e.Cancel ” bool türünde bir değer istemektedir. Bu sebeple ilk örnekte kullandığımız bool değişkenin değerlerini tersten aldık ve varsayılan olarak değerini “true” verdik.

Buradan biliyoruz ki hiç işlem yapılmadıysa değişkenimizin değeri “true” olarak kalacak.

İstediğimiz işlemler yapılmadan formun kapanmasını engellemek için “e.Cancel” komutuna “true” değeri göndermemiz gerekiyor.

O zaman “e.Cancel” komutuna direk değişkenimizi gönderirsek, işlem yapılmadan formun kapanmasına da engel olmuş oluruz. Eğer istediğimiz işlemler yapılmış olursa değişkenimizin değeri false olacak. Bu sayede de formun kapanmasına izin vermiş olacağız.

C# hakkındaki diğer dersler için tıklayınız.

C Sharp Formun Kapanmasını Nasıl Engelleriz dersimiz de bu kadar dostlar. Diğer C Sharp derslerimizde görüşmek üzere.

Sağlıcakla ve takipte kalın. 😉

Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım.

Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir.

Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır.Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.