5 Mayıs 2013 Pazar

C Sharp Uygulamalar Textbox dan Girilen Karakterleri Sayı mi Harf mi Kontrolü Yapma



KONU : C Sharp Uygulamalar - C Sharp ( C# ) textbox a sadece yazı veya sadece rakam yazdırma. Textbox a girilen karakterli sayı mı harf mi diye kontrol edebilme. Textbox girilen karakter boyunu kontrol etme. Klavye Back tuşunu aktif hale getirme.



UYGULAMAYI İNDİR



Textbox içeriğine sadece harf yazdırmak için textbox keypress olayını kullanacağız.

Eğer girilen değer bir harf değilse yani basılan tuş bir harfi temsil etmiyorsa işlem yapılmasın.

Bunun için bu durum olduğunda e.Handled değerini true yapmamız yeterli olacak. Aşağıdaki örnekteki gibi yazdığımızda artık Textbox a sadece harf girilecek.

 private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
 {
      if (Char.IsLetter(e.KeyChar) == false)
      {
            e.Handled = true;
      }
 } 

Eğer biz kelime uzunluğunu da kontrol etme istiyorsak if yapısının içinde textbox a yazılan karakterlerinuzunluğunu kontrol etmemiz yeterli. Örnekte kelime uzunluğunun 10 u geçmemesini istedim.

 private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
 {
      if (Char.IsLetter(e.KeyChar) == false || textBox1.Text.Length > 9)
      {
            e.Handled = true;
      }
 } 



Bu seferde girilen değer bir rakam değilse yani basılan tuş bir rakamı temsil etmiyorsa işlem yapılmasın

Bu işlem is Char sınıfının isdigit fonksiyonunu kullanacağız. Aşağıdaki örnekteki gibi yazdığımızda artık Textbox a sadece rakam girilecek.

 private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
 {
      if (Char.IsDigit(e.KeyChar) == false)
      {
            e.Handled = true;
      }
 } 

Sadece rakam girilme durumunda da karakter kontrolünü aşağıdaki gibi yapabiliriz. Eğer karakter sayısı 10 u geçmiş ise kullanıcı rakam olan bir tuşa bassa da yaptığı işlem gerçekleşmeyecek.


 private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
 {
      if (Char.IsDigit(e.KeyChar) == false || textBox1.Text.Length > 9)
      {
            e.Handled = true;
      }
 } 

Yukarıdaki gibi yazdığımızda önemli bir sıkıntı ile karşılaşabiliriz. Mesela kullanıcı yanlış tuşa bastı ve yazdığını geri almak istedi . Bunu yukarıdaki kod ile yapamaz. Bunu yapmak için ayrıca basılan tuşun back tuşu olup olmadığı kontrol edilmelidir. Örneğin:


        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((Char)Keys.Back != e.KeyChar)
            {
                if (!Char.IsDigit(e.KeyChar) || textBox1.Text.Length > 9)
                {
                    e.Handled = true;
                }
            }
        }

bu şekilde yazdığımızda artık  back tuşu da çalışmaya başlayacaktır.





Parola girme textbox ına sadece rakam, harf ve herhangi bir sembol girilmesi istiyorsak ve parolanın uzunluğunun 10 karakterden büyük olmamasını istiyorsak parola textbox ının keypress olayına aşağıdaki kodu yazmalıyız.


         private void password_KeyPress(object sender, KeyPressEventArgs e) 
        { 

             if ((Char)Keys.Back != e.KeyChar) 
             { 
                 if (Char.IsDigit(e.KeyChar) == false && char.IsLetter(e.KeyChar) == false &&Char.IsSymbol(e.KeyChar) || password.Text.Length > 9) 
                 { 
                     e.Handled = true; 
                 } 
             } 

        } 


Başka bir örnek olarak da bu sefer sadece harf ve boşluk girilmesini istiyorsak aşağıdaki şekilde kontrol edebiliriz.

        private void ad_soyad_KeyPress(object sender, KeyPressEventArgs e) 
        { 
            if ((Char)Keys.Back != e.KeyChar) 
            { 

               if (Char.IsWhiteSpace(e.KeyChar) == false && char.IsLetter(e.KeyChar) == false || ad_soyad.Text.Length > 15) 
               { 

                    e.Handled = true; 
               } 

            } 
        } 




Bu örnek de textbox a sadece boşluk ve rakam girilmesini istiyoruz. Ayrıca Back tuşunun da çalışması için if kontrolünü üstüne back tuşunu kontrol eden bir if bloğu koyduk. Böylece kullanıcı back tuşu ile düzeltme yapabilecek.

      
        private void ıd_KeyPress(object sender, KeyPressEventArgs e) 
        { 
            if ((Char)Keys.Back != e.KeyChar) 
            { 

               if (Char.IsWhiteSpace(e.KeyChar) == false && char.IsDigit(e.KeyChar) == false || ıd.Text.Length > 6) 
               { 

                    e.Handled = true; 
               } 

            } 
        }   




UYGULAMAYI İNDİR

Hiç yorum yok :

Yorum Gönder