İç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
#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
#2
NumericUpDown kullansan daha iyi olur aslında. Hiç uğraşmazsın kodla.
UgurOnline Konuyu açan
#3
doğru diyosun aslında. öyle yapayım teşekkür ederim
#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;
}
#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
#6
avarhan'un koduda oldu bu arada
#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ı (:
#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:
#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
#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
#11
Hmm anladım hocam.Müsait oldugumda c#'daki kodu vb.net'e çevirmeye çalışırım.
#12
textchanged olayına yazarsan olur :)
#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.