C# textbox'a sadece sayı

Bu konuyu okuyanlar

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
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

Kod:
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsLetter(e.KeyChar))
            {
                e.Handled = true;
            }
        }
 

N3CAT1

Müdavim
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,609
Reaksiyon puanı
144
Puanları
63
NumericUpDown kullansan daha iyi olur aslında. Hiç uğraşmazsın kodla.
 

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
doğru diyosun aslında. öyle yapayım teşekkür ederim
 

avarhan

Öğrenci
Katılım
22 Ekim 2010
Mesajlar
23
Reaksiyon puanı
0
Puanları
0
Bu kodla işini görebilirsin.
if (char.IsDigit(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))
{
e.Handled =
false;
}
else
{
e.Handled =
true;
}
 

annttiigs

Müdavim
Emektar
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
38
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

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
avarhan'un koduda oldu bu arada
 

Vatansever

Asistan
Katılım
23 Ağustos 2007
Mesajlar
405
Reaksiyon puanı
1
Puanları
18
Bendede aynı sorun var VB .NET'te bu sorunu nasıl çözerim
yardım edermisiniz benim kullandığım kodda aşağıda
Kod:
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:
 

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
@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
 

Vatansever

Asistan
Katılım
23 Ağustos 2007
Mesajlar
405
Reaksiyon puanı
1
Puanları
18
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
 

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
Hmm anladım hocam.Müsait oldugumda c#'daki kodu vb.net'e çevirmeye çalışırım.
 

Vatansever

Asistan
Katılım
23 Ağustos 2007
Mesajlar
405
Reaksiyon puanı
1
Puanları
18
TextChanged olayına yazmayı denedim ama benim kod
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?
 

Son mesajlar

Üst