İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

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


+ - 0

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. :D

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. ;)

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)