C# Textbox a Sadece Alfanümerik veya Nümarik Yazdırabilmek
Bizim yaptığımız bir programda son kullanıcılara bıraktığımız vakit artık nasıl veriler gireceğini bilmiyoruz. Bilmiyoruzdan kasıt son kullanıcıya telefon numarasını gir dersin son kullanıcı sayısal veriye sayısal olmayan verilerde girebilir. Adınız yazarsınız son kullanıcı ad1 diye girebilir. Bunlarda verilerimizde tutarsızlığa ve veri kaybına neden olabilir.
Şimdiki yapıcağımız işlem son kullanıcıyı doğru girmesine zorlamak, kullanıcıyı bizim isteğimiz dışına çıkmasına izin vermemektir.
Yapıcağımız işlem çok basit.
Sadece Alfanümerik için
Textbox'ımızın Keypress eventine şunları yazmamız yeterli olucaktır.
private void txt_KullaniciAd_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !char.IsLetter(e.KeyChar) && !char.IsControl(e.KeyChar)
&& !char.IsSeparator(e.KeyChar);
//Klavyeden basıldığında basılan karakteri ayrı ayrı kontrolle sokuyoruz
//Ve dönen sonucumuz true ise yazabilir eğer bu kontrollere uymuyorsa
//Textboxımıza basılan değeri yazdırmıyoruz
}
Sıra geldi..
Sadece Nümarik için
Yapıcağımız işlem yine aynı
private void txt_Fiyat_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);//sadece rakam
//Klavyeden basıldığında basılan karakteri ayrı ayrı kontrolle sokuyoruz
//Ve dönen sonucumuz true ise yazabilir eğer bu kontrollere uymuyorsa
//Textboxımıza basılan değeri yazdırmıyoruz
}
Görüldüğü gibi basit kontroller ile bu işlemleri yapabiliyoruz ve son kullanıcının yanlış veriler girmesine engel oluyoruz bu da bizim açıdan çok iyi. Siz daha da geliştirebilirsiniz örneğin bir if yapısı yazarak uyarı verdirebilirsiniz gerisi sizin kullanımınıza kalmıştır.