Vb.net 在文本框中只允许数字
下面是关于如何仅允许文本框中的数字的代码:Vb.net 在文本框中只允许数字,vb.net,Vb.net,下面是关于如何仅允许文本框中的数字的代码: 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
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
Private Sub TextBox1\u KeyPress(ByVal sender作为对象,ByVal e作为System.Windows.Forms.KeyPressEventArgs)处理TextBox1.KeyPress
'97-122=简单字母的Ascii码
'65-90=大写字母的Ascii码
'48-57=数字的Ascii码
如果Asc(e.KeyChar)8,则
如果Asc(e.KeyChar)<48或Asc(e.KeyChar)>57,则
e、 已处理=真
如果结束
如果结束
端接头
我一件事都不明白。在中,如果Asc(e.KeyChar)8,那么
,为什么使用数字8?这里的8代表什么?
请解释在
ASCII
中,0到9的数值表示为48到57。您可以在下面的链接中查看所有ASCII
的列表
值8代表退格键。试试这个:
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”,也可以使用
我希望我的代码对你有用:)在把你的问题读了两遍之后,我终于明白了你说的话。您从互联网或其他地方获得了此代码,但您不知道中的8如果Asc(e.KeyChar)8那么是什么意思
答案是:它意味着退格键
Mousa Alfailly没有使用ASCII方式编写相同的代码。
简单地说,如果Asc(e.KeyChar)8那么
在他的代码中意味着如果BACKSPACE=False那么
有关ASCII值的更多参考信息,请访问此网站:对不起,您的问题毫无意义。这是什么?这是退格键的字符代码。如果您不允许,那么用户将无法再纠正键入错误。只要试一下就很容易找到。Backspace键生成按键事件,但说Delete和Insert不生成,这有点不靠谱,但可以追溯到人们使用电传打字机与计算机通话的旧时代。请注意,您还禁用了复制和粘贴。永远不要使用您不理解的代码。使用调试器了解从internet粘贴的代码。请阅读并接受以下内容:OP最多只能清楚地知道他在做什么,并且似乎正在与Visual Basic和Windows窗体进行斗争,即使问题标记为C
。然而,这里您为JavaScript提供了所有东西的答案。这不是OP想要的答案,而是很好的代码,所以+1。我在回答中引用了你的代码,希望没问题