Merhaba arkadaşlar.C# da hazırlamakta oldugum bir projede ad ve soyad(textBox1.text ve textBox2.text) girilmesi gereken yere sayı girişini kod yazarak nasıl engelleyebilirim?cevap gönderen arkadaslara simdiden teşekkürler
uyarı mesajı vermesi için //' ı en başta kaldırmıştım zaten.ona rağmen mesaj uyarısı vermedi ve rakam girişine izin vermeye devam etti.başka bir öneriniz varmı??
hiç denemedim ama tahminimce e.KeyChar tek bir karakter döndürür 'c' gibi sen kodd 48 gibi onun ascii koduna bakıyorsun. haliyle bulamıyor ve tepki vermiyor. kuvvetle muhtemel e.KeyChar kodunun döndürdüğünü ascii ye cevirip (yani int'e sayılır) kontrol etmelisin.
sorun bu mu tam emin değilim kontrol etmek gerekir.
try { int.Parse(textBox1.Text); MessaegBox.Show("Sadece Yazı..."); }//Textboxlardan herhangi birinde sayı yazılmış ise try i geçecek catch e düşmeyecek. catch { // Ahanda Bura Sadece text Girilmiş Anlamına Gelir. // Ne Lazımsa Burda Yap. }
Mantık: Textleri Sayıya Çevirmeye Çalışırız Çeviremediği Taktirde Catch ile hatayı yakalatırsın buda demektirki yazı girilmiş sayıya çevrilemiyor. catch yakalarsa demektir ki yazı girilmiş.
try { int.Parse(textBox1.Text); MessaegBox.Show("Sadece Yazı..."); }//Textboxlardan herhangi birinde sayı yazılmış ise try i geçecek catch e düşmeyecek. catch { // Ahanda Bura Sadece text Girilmiş Anlamına Gelir. // Ne Lazımsa Burda Yap. }
Mantık: Textleri Sayıya Çevirmeye Çalışırız Çeviremediği Taktirde Catch ile hatayı yakalatırsın buda demektirki yazı girilmiş sayıya çevrilemiyor. catch yakalarsa demektir ki yazı girilmiş.
try catch yöntemi ile sayı girişini engelledimcevap yazan arkadaşlara cok tesekkür ederim.sıra geldi setup a
if (e.KeyChar >=48 && e.KeyChar <=57)
{
e.Handled = false;
}
else if (e.KeyChar==8)
{
e.Handled = false;
}
else
{
e.Handled = true;
//MessageBox.Show(e.KeyChar.ToString() + " geçersiz karakter"); //istersen kullanıcıyı uyarabılırsınde
}
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
// 'ı kaldır çalışır
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
haliyle bulamıyor ve tepki vermiyor.
kuvvetle muhtemel e.KeyChar kodunun döndürdüğünü ascii ye cevirip (yani int'e sayılır) kontrol etmelisin.
sorun bu mu tam emin değilim kontrol etmek gerekir.
Bu mesaja 1 cevap geldi. Cevapları Gizle
if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar == Convert.ToInt32(Keys.Back))
e.Handled = false;
else
e.Handled = true;
}
şeklinde yazdım ve sayı girişini engelledim fakat bu sefer backspace tusunu engelledim
Bu mesaja 1 cevap geldi. Cevapları Gizle
e.KeyChar == Convert.ToInt32(Keys.Back)
Bu mesaja 1 cevap geldi. Cevapları Gizle
Mantık: Textleri Sayıya Çevirmeye Çalışırız Çeviremediği Taktirde Catch ile hatayı yakalatırsın buda demektirki yazı girilmiş sayıya çevrilemiyor.
catch yakalarsa demektir ki yazı girilmiş.
Bu mesaja 1 cevap geldi. Cevapları Gizle
try catch yöntemi ile sayı girişini engelledim
Bu mesaja 1 cevap geldi. Cevapları Gizle
Buldum;
int ctrl;
if (!int.TryParse(textBox3.Text, out ctrl))
{
MessageBox.Show("sadece sayi");
}
else
{
.........;
}
< Bu mesaj bu kişi tarafından değiştirildi EvinRude -- 20 Ocak 2009; 9:58:56 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar == Convert.ToChar(Keys.Back))
e.Handled = false;
else
e.Handled = true;
sayı dısındaki tuşlar engellenmiş oldu