Şimdi Ara

C# da sayı girişini engelleme

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
15
Cevap
0
Favori
3.734
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
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



  • 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
    }
  • cok teşekkürler hemen deniyorum
  • yukarıdaki kodları kopyalayıp soylenen yere yapıştırdım fakat rakam girince hic bir uyarı vermedi.önerebilecegin başka bir yol varmı??
  • direk yapıştırdıysan sadece engeller, uyarma satırı dikkat edersen // ile comment out yapılmış.

    // 'ı kaldır çalışır
  • 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.
  • {
    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??
  • burada engellemi olmayasın

    e.KeyChar == Convert.ToInt32(Keys.Back)
  • 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ş.
  • 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
  • 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




  • 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 >
  • 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
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.