C# CheckState İçin Özel Metod Oluşturmak , yazımız ile c sharp eğitimlerimize devam ediyoruz. Bu yazımızda checkbox’ların geri dönüş değeri olan checkstate değişken tipi için bir class yapacağız. Bu yöntem benim işimi bayağı bir kolaylaştırmıştı, umarım sizlerinde işine yarar. Gelin C# CheckState İçin Özel Metod Oluşturmak işlemine bir bakalım.
NOT: CheckState’i , Türkçe işaret durumu olarak çevirebiliriz. Yani işaretli mi değil mi? gibi.
C# CheckState İçin Özel Metod Oluşturmak
Database ‘den çektiğimiz verilerde yada gridview üzerinden aldığımız verilerde checkbox ları verilere göre işaretlemek yada işaretlememek benim için hep bir sorun olmuştur. Gelen değeri string olarak alırsak farklı, int olarak alırsak farklı, bool olarak alırsak farklı şekillerde işlem yapıyoruz. Bu yöntem de aslında temelde aynı işlemi yapıyor ancak işimizi checkstate ile bitiriyoruz. Yani checkbox’lar ve türevi nesnelerin geri dönüş değerleri ile…
Normalde yaptığım işlemler şu şekilde oluyordu;
/ verileri alacak olan kodlar if (AktifMi == 1) CHK_PASIF.CheckState = CheckState.Checked; else CHK_PASIF.CheckState = CheckState.Unchecked; // yada if (AktifMi == 1) // AktifMi değişkenini int olarak alırsanız bu şekilde olur // AktifMi değişkenini bool olarak alırsanız "if (AktifMi)" şeklinde kullanabilirsiniz. // çünkü if içerisinden her zaman "true" değer döner. Yani yazıdğınız değişken "true" ise // if çalışır false ise else çalışır. CHK_PASIF.Checked = true; else CHK_PASIF.Checked = false; // arkadaşlar ilk yöntemi kullanmak çok daha iyidir. // ikinci yöntemde bazen nedense işlemleri yapmadığını farkettim. // ama artık bu yöntemlere gerek kalmadı
Ama class’ı hazırladığımda bir satır bile sayılmayacak kadar kısa bir kod ile işimi halledebiliyorum. Şimdi o class’ın tamamını vereceğim sonrada nasıl kullanacağımızı…
Öncelikle class’ımıza namespace imizi ekleyelim.
using System.Windows.Forms;
public static CheckState Checked_Kontrol(int deger) { CheckState cs = new CheckState(); switch (deger) { case 0: cs = CheckState.Unchecked; break; case 1: cs = CheckState.Checked; break; case 2: cs = CheckState.Indeterminate; break; default: MessageBox.Show(deger.ToString() + " Değeri bir checkbox için geçerli değil", "Değer Hatalı", MessageBoxButtons.OK, MessageBoxIcon.Hand); break; } return cs; } public static CheckState Checked_Kontrol(bool deger) { CheckState cs = new CheckState(); switch (deger) { case false: cs = CheckState.Unchecked; break; case true: cs = CheckState.Checked; break; } return cs; } public static CheckState Checked_Kontrol(string deger) { CheckState cs = new CheckState(); switch (deger) { case "0": cs = CheckState.Unchecked; break; case "1": cs = CheckState.Checked; break; case "2": cs = CheckState.Indeterminate; break; case "false": cs = CheckState.Unchecked; break; case "true": cs = CheckState.Checked; break; case "False": cs = CheckState.Unchecked; break; case "True": cs = CheckState.Checked; break; default: MessageBox.Show(deger.ToString() + " Değeri bir checkbox için geçerli değil", "Değer Hatalı", MessageBoxButtons.OK, MessageBoxIcon.Hand); break; } return cs; }
Class içerisindeki tüm kodlarımız bu kadar. Şimdi kodlarımızı açıklayalım;
Öncelikle burada bir overloaded metod kullanılmıştır. Overloaded Metod Nedir derseniz yazıma bakabilirsiniz.
Eğer metoda gelen değer, string olarak “1” , “True” yada “true” gelirse geriye chechked değerini tutan bir CheckState dönecektir.
Eğer metoda gelen değer, int olarak “1” gelirse geriye chechked değerini tutan bir CheckState dönecektir.
Eğer metoda gelen değer, bool olarak “true” gelirse geriye chechked değerini tutan bir CheckState dönecektir.
Aynısı tam tersleri içinde geçerlidir. Yok bambaşka bir değer gelirse de uyarı mesajı ile durumu bildireceğiz. Peki neden 0, 1, true, false vs. derseniz sadece yukarıdaki metodlardaki değerlerin CheckState dönüşümü ( karşılığı ) vardır.
Ayrıca overloaded metod yaptığımızdan dolayı, parametre olarak string göndersekte, int göndersekte ve bool göndersekte hata vermeyecektir.
Şimdi nasıl kullanacağımza geçelim
Aşağıda kullanıma örnek kodlar vardır. Class’ımın adı Kontroller’dir,
checkEdit1.CheckState = Kontroller.Checked_Kontrol(1); checkEdit2.CheckState = Kontroller.Checked_Kontrol("1"); checkEdit3.CheckState = Kontroller.Checked_Kontrol("true"); checkEdit4.CheckState = Kontroller.Checked_Kontrol(true);
Gördüğünüz gibi, int, string yada bool gönderebiliriz. Hepsinde de çalışır. Ayrıca metdolarımız CheckState türünde değer döndüğünden direk checkbox’un chechkstate durumuna atıyoruz. Ne kadar kolay, güzel ve kullanışlı değil mi? Ayrıca buradan Yazılıma Başlamak Mı İstiyorsunuz? Görmeniz Lazım! yazıma da bir atıfta bulunmak istiyorum. :D
C# CheckState İçin Özel Metod Oluşturmak , yazımız da bu kadar dostlar. Diğer derslerimizde görüşmek üzere. Bu şekilde daha çok metod paylaşacağım. Umarım hoşunuza gitmiştir ve işinize yaramıştır.
C Sharp Eğitim Seti ve ERP Programlama eğitimi sayfasına gitmek için tıklayınız. Buraya tıklayarak Github Projeme ulaşabilirsiniz.
Sağlıcakla ve takipte kalın.
Salam, bu dəyərli təcrübələrinizi bizimlə bölüşdüyünüz üçün çox sağ olun, əlləriniz ağrımasın.
Başarılar!!!
Selam.
Sitenin amacı, insanlara yardımcı olabilmek adına doğru bilgiler verebilmektir. Bu bilgilerin birilerine faydalı olması beni mutlu ediyor. Değerli yorumun için çok teşekkürler. :)