以下是有关如何仅允许文本框中的数字的代码:
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
'97 - 122 = Ascii codes for simple letters
'65 - 90 = Ascii codes for capital letters
'48 - 57 = Ascii codes for numbers
If Asc(e.KeyChar) <> 8 Then
If Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57 Then
e.Handled = True
End If
End If
End Sub
我在这里不了解一件事。在If Asc(e.KeyChar) <> 8 Then
中,为什么使用数字8?这里用8代表什么?
请解释
答案 0 :(得分:0)
试试这个:
Dim BACKSPACE As Boolean
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.Back Then
BACKSPACE = True
Else
BACKSPACE = False
End If
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If BACKSPACE = False Then
Dim allowedChars As String = "0123456789"
If allowedChars.IndexOf(e.KeyChar) = -1 Then
e.Handled = True
End If
End If
End Sub
处理粘贴字符的方法:选择textbox1
并转到“属性”,然后:将ShortcutsEnabled
设置为“False”,或者使用MaskedTextBox。
我希望我的代码对你有用:)
答案 1 :(得分:0)
If Asc(e.KeyChar) <> 8 Then
中的 8 是什么意思?
嗯,答案是:这意味着 Backspace 键。
Mousa Alfhaily 在不使用ASCII方式的情况下编写了相同的代码
很简单,If Asc(e.KeyChar) <> 8 Then
在他的代码中意味着If BACKSPACE = False Then
。
有关ASCII值的更多参考,请访问以下网站:ASCII table
答案 2 :(得分:-1)