Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在文本框中只允许数字_Vb.net - Fatal编程技术网

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。我在回答中引用了你的代码,希望没问题