Bu konudaki kullanıcılar: 2 misafir, 1 mobil kullanıcı
13
Cevap
3009
Tıklama
0
Öne Çıkarma
C# da sayı girişini engelleme

U ut-Q Konu Sahibi
13 yıl (59 mesaj)
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




M muratsurmen
13 yıl (28 mesaj)
textbox1.text in keypress olayına gelip oraya su kodları yazarsan sorunun hallolur.
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.

U ut-Q Konu Sahibi
13 yıl (59 mesaj)
cok teşekkürler hemen deniyorum


Bu mesaja 1 cevap geldi.

U ut-Q Konu Sahibi
13 yıl (59 mesaj)
yukarıdaki kodları kopyalayıp soylenen yere yapıştırdım fakat rakam girince hic bir uyarı vermedi.önerebilecegin başka bir yol varmı??


Bu mesaja 1 cevap geldi.

A amras_tasartir
13 yıl (611 mesaj)
direk yapıştırdıysan sadece engeller, uyarma satırı dikkat edersen // ile comment out yapılmış.

// 'ı kaldır çalışır


Bu mesaja 1 cevap geldi.

U ut-Q Konu Sahibi
13 yıl (59 mesaj)
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ı??


Bu mesaja 1 cevap geldi.

A amras_tasartir
13 yıl (611 mesaj)
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.


Bu mesaja 1 cevap geldi.

U ut-Q Konu Sahibi
13 yıl (59 mesaj)
{
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 engelledimascii ni bilen varmı acaba??


Bu mesaja 1 cevap geldi.

A amras_tasartir
13 yıl (611 mesaj)
burada engellemi olmayasın

e.KeyChar == Convert.ToInt32(Keys.Back)


Bu mesaja 1 cevap geldi.

S sehlor
13 yıl (2186 mesaj)
denemeden yazıyorum yazım hatası olabilir:
 
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ş.


Bu mesaja 1 cevap geldi.

M muratsurmen
13 yıl (28 mesaj)
ascii nin backspace kodu 8 dir bnu kaldır ve olayı key press e yaptıgından emın ol sorun olcagını sanmıyorum




U ut-Q Konu Sahibi
13 yıl (59 mesaj)
quote:

Orjinalden alıntı: sehlor

denemeden yazıyorum yazım hatası olabilir:
 
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


Bu mesaja 1 cevap geldi.

E EvinRude
13 yıl (113 mesaj)
Ayni seyi sadece sayi girilmesi icin nasil yapabiliriz?

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.

U ut-Q Konu Sahibi
13 yıl (59 mesaj)
sadece sayı girişi için bu kodu kullandım;

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



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.