Arama butonu
Bu konudaki kullanıcılar: 1 misafir
13
Cevap
3801
Tıklama
0
Öne Çıkarma
C# da sayı girişini engelleme
U
17 yıl
Çavuş
Konu Sahibi

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

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



M
17 yıl
Onbaşı

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
17 yıl
Çavuş
Konu Sahibi

cok teşekkürler hemen deniyorum


Bu mesaja 1 cevap geldi.
U
17 yıl
Çavuş
Konu Sahibi

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
17 yıl
Yüzbaşı

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
17 yıl
Çavuş
Konu Sahibi

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
17 yıl
Yüzbaşı

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
17 yıl
Çavuş
Konu Sahibi

{
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
17 yıl
Yüzbaşı

burada engellemi olmayasın

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


Bu mesaja 1 cevap geldi.
S
17 yıl
Yarbay

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
17 yıl
Onbaşı

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
17 yıl
Çavuş
Konu Sahibi

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
16 yıl
Teğmen

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
16 yıl
Çavuş
Konu Sahibi

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.