İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C# textbox'a sadece sayı

UgurOnline22.10.201012 cevap15.403 görüntüleme
2008'den beri159 mesaj
#1
aşağıdaki kodla textboxa sadece rakam girilmesini sağlıyorum ancak yapıştırma yöntemiyle metin girilebiliyor. bunu nasıl engelleyebilirim?

teşekkürler

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsLetter(e.KeyChar))
            {
                e.Handled = true;
            }
        }
Cevaplar
2008'den beri6.607 mesaj
#2
NumericUpDown kullansan daha iyi olur aslında. Hiç uğraşmazsın kodla.
UgurOnline Konuyu açan
2008'den beri159 mesaj
#3
doğru diyosun aslında. öyle yapayım teşekkür ederim
2010'den beri23 mesaj
#4
Bu kodla işini görebilirsin.
if (char.IsDigit(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))
{
e.Handled =
false;
}
else
{
e.Handled =
true;
}
2007'den beri2.589 mesaj
#5
sen keypressed action'u handle etmişsin. onchange action'u da handle edersen bu sorun textbox'la da giderilir. ama gereksiz kod yazmaya gerek yok :)
UgurOnline Konuyu açan
2008'den beri159 mesaj
#6
avarhan'un koduda oldu bu arada
2009'den beri508 mesaj
#7
avarhan dedi: ↑
Bu kodla işini görebilirsin.
if (char.IsDigit(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))
{
e.Handled =
false;
}
else
{
e.Handled =
true;
}
Hocam teşekkürler.Benimde İşime Yaradı (:
2007'den beri405 mesaj
#8
Bendede aynı sorun var VB .NET'te bu sorunu nasıl çözerim
yardım edermisiniz benim kullandığım kodda aşağıda


Private Sub En1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles En1.KeyPress
        Dim strAllowableChars As String
        strAllowableChars = "0123456789.,"
        If InStr(strAllowableChars, e.KeyChar.ToString) = 0 Then
            e.Handled = True
        End If
    End Sub

:lol:
2009'den beri508 mesaj
#9
@VatanSever Buyur;
Private Sub TextBox1_TextChanged
If Not IsNumeric(TextBox1.Text) And TextBox1.Text <> "" Then
MsgBox("Lütfen Sayısal Değer Giriniz." & vbCrLf & "Örn:12345", MsgBoxStyle.Exclamation, "Uyarı")
TextBox1.Text = ""
TextBox1.Focus()
End If
End Sub
2007'den beri405 mesaj
#10
Teşekkür ederim SiberWorm kardeş ama kod iyi çalışmıyor sorun şu klavyeden karakter girince uyarı veriyor reddediyor ama son girdiğin harf textbox'un içinde kalıyor ve önce rakamlar yazdıysan onlarıda boşaltıyor sadece hatalı karakteri silmiyor hepsini siliyor kopyala yapıştır yolu ile her harfide kabul ediyor benim kodum bu konuda daha kusursuz çalışıyor sorun şu kopyala yapıştır yolu ile textbox içine her harfi kabul ediyor klavyeden girince sorun yok, istediğim kodumun yaptığı işlev kopyala yapıştır yapıncada işe yarasın sadece rakamlar kabul edilsin
2009'den beri508 mesaj
#11
Hmm anladım hocam.Müsait oldugumda c#'daki kodu vb.net'e çevirmeye çalışırım.
2009'den beri1.039 mesaj
#12
textchanged olayına yazarsan olur :)
2007'den beri405 mesaj
#13
TextChanged olayına yazmayı denedim ama benim kod
Private Sub En1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles En1.KeyPress
KeyPress Harici bir yerde çalışmıyor yani biraz değiştirmek gerekiyor ben yapamadım yardımcı olabilirmisiniz?

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.