Hi. I need TextBox in which user can input only numbers. I found some examples about it, but can't do them. For example in the following code

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

If Not (e.KeyChar.IsDigit(e.KeyChar)) And _
e.KeyChar <> ChrW(Keys.Back) Then
e.Handles = True
End If

End Sub

VB underline this
e.Handles = True ' because Handles is not member of "System.Windows.Forms.KeyPressEventArgs"

Recommended Answers

You must to specify the character in ascci that contains numbers only
Try This following code :

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If (Microsoft.VisualBasic.Asc(e.KeyChar) < 48) _
               Or (Microsoft.VisualBasic.Asc(e.KeyChar) > 57) Then
            e.Handled = True
        End If
        If (Microsoft.VisualBasic.Asc(e.KeyChar) = …
Jump to Post

i think you can see ascii table and find the ascii character as you want.
Ok.
all for the best

Jump to Post

You just need to handle the KeyChar

Jump to Post

Hi,

Try This :

Private Sub Text1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Text1.KeyPress
        If e.KeyChar <> ChrW(Keys.Back) Then
            If (e.KeyChar.ToString >= "A" And e.KeyChar.ToString <= "Z") Or (e.KeyChar.ToString >= "a" And e.KeyChar.ToString <= "z") Then
            Else
                e.Handled = True
            End If
        End If …
Jump to Post

All 15 Replies

you could always set up a select case statement for every time the user inputs a value and just set up the case statements to accept only numbers.

You must to specify the character in ascci that contains numbers only
Try This following code :

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If (Microsoft.VisualBasic.Asc(e.KeyChar) < 48) _
               Or (Microsoft.VisualBasic.Asc(e.KeyChar) > 57) Then
            e.Handled = True
        End If
        If (Microsoft.VisualBasic.Asc(e.KeyChar) = 8) Then
            e.Handled = False
        End If
end sub

Jery
Best Regards

try this,it will definatly work

Private Function TrapKey(ByVal KCode As String) As Boolean
        If (KCode >= 48 And KCode <= 57) Or KCode = 8 Then
            TrapKey = False
        Else
            TrapKey = True
        End If
    End Function


//textbox keypress event
   e.Handled = TrapKey(Asc(e.KeyChar))
commented: Works fine for me, thank you. +0

i think you can see ascii table and find the ascii character as you want.
Ok.
all for the best

if u are using vb.net , it should have a default function name IsNumeric

If Not Isnumeric(txtInput.text) then
messagebox.show("Please enter Number")

end if

You just need to handle the KeyChar

hi! nice.. i hv tried some codes given here. it's works .

another question,

WHAT IS THE CODE FOR ASSIGN THE USER TO ENTER ONLY THE CHARACTER. NOT A NUMBER???

pLS HELP

THANKS IN ADVANCED

hi! nice.. i hv tried some codes given here. it's works .

another question,

WHAT IS THE CODE FOR ASSIGN THE USER TO ENTER ONLY THE CHARACTER. NOT A NUMBER???

pLS HELP

THANKS IN ADVANCED

Hi,

Try This :

Private Sub Text1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Text1.KeyPress
        If e.KeyChar <> ChrW(Keys.Back) Then
            If (e.KeyChar.ToString >= "A" And e.KeyChar.ToString <= "Z") Or (e.KeyChar.ToString >= "a" And e.KeyChar.ToString <= "z") Then
            Else
                e.Handled = True
            End If
        End If
    End Sub

Regards
Veena

Hi,

Try This :

Private Sub Text1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Text1.KeyPress
        If e.KeyChar <> ChrW(Keys.Back) Then
            If (e.KeyChar.ToString >= "A" And e.KeyChar.ToString <= "Z") Or (e.KeyChar.ToString >= "a" And e.KeyChar.ToString <= "z") Then
            Else
                e.Handled = True
            End If
        End If
    End Sub

Regards
Veena

Thanks a alot...=)

Also you can do with this code :

Private Sub txtBahasa_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtBahasa.KeyPress
        If (Microsoft.VisualBasic.Asc(e.KeyChar) < 65) _
              Or (Microsoft.VisualBasic.Asc(e.KeyChar) > 90) _
              And (Microsoft.VisualBasic.Asc(e.KeyChar) < 97) _
              Or (Microsoft.VisualBasic.Asc(e.KeyChar) > 122) Then
            'space accepted
            If (Microsoft.VisualBasic.Asc(e.KeyChar) <> 32) Then
                e.Handled = True
            End If
        End If
        If (Microsoft.VisualBasic.Asc(e.KeyChar) = 8) Then
            e.Handled = False
        End If

    End Sub

Or just do this:

if Isnumeric(String) then
do_stuff_here
end if

Static Dim flag As Integer
Dim t As New TextBox
t = sender
If InStr(t.Text, ".") = 0 Then
flag = 0
End If
If Not ((Asc(e.KeyChar.ToString) >= 48 And Asc(e.KeyChar.ToString) <= 58) Or (Asc(e.KeyChar.ToString) = 8 Or (Asc(e.KeyChar.ToString) = 46) And flag <> 10)) Then
e.Handled = True
End If
If (Asc(e.KeyChar.ToString) = 46) Then
flag = 10
End If

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.