VB文本框怎样限制只能输入数字值

2024-11-21 18:08:05
推荐回答(5个)
回答1:

1、 新建一个标准EXE程序。

2、 绘制界面,添加一个 Textbox 控件,改名为 txbNumber。


3、 编写代码。在代码窗口中,添加 txbNumber_KeyPress 事件。

4、查ASCII码表,得到0的ASCII码是48。输入以下语句:

If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0

这条语句用来判断输入的字符是否在0-9的范围,如果不在这个范围,就把这个输入的字符屏蔽掉。

5、但这么做会产生一个问题,就是使用BackSpace删除字符的时候,由于按键被屏蔽,无法删除。只要在上面的语句前在添加一条语句:If KeyAscii = 8 Then Exit Sub,意思是,如果按了BackSpace,就直接退出该过程,按键就不会被屏蔽了。

6、调试运行。按F5,在文本框中输入任意字符,可以看到只有数字能显示在文本框中。按退格键,字符也能正常删除。

7、 如果输入的数字可能是小数,那么还要添加如下代码:

If KeyAscii = 46 And Not CBool(InStr(txbNumber, ".")) Then Exit Sub

当输入小数点时,程序判断文本框中是否已有小数点(因为一个小数中不可能有多个小数点),如果没有小数点,则允许输入。

回答2:

1、新建一个标准EXE程序。

2、 绘制界面,添加一个 Textbox 控件,改名为 txbNumber。

3、 编写代码在代码窗口中,添加 txbNumber_KeyPress 事件。

4、输入以下语句: If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0这条语句用来判断输入的字符是否在0-9的范围,如果不在这个范围,就把这个输入的字符屏蔽掉。

5、 但这么做会产生一个问题,就是使用BackSpace删除字符的时候,由于按键被屏蔽,无法删除只要在上面的语句前在添加一条语句:If KeyAscii = 8 Then Exit Sub

6、 调试运行按F5,在文本框中输入任意字符,可以看到只有数字能显示在文本框中。按退格键,字符也能正常删除。

回答3:

(二楼那个不能输入小数点和科学计算,还有其他进制,我重新编了一个,要事先把文本框的tag属性设为"0")
Private Sub Text1_Change()
If IsNumeric(Text1.Text) Then
Text1.Tag = Text1.Text
End If
End Sub

Private Sub Text1_LostFocus()
If Text1.Text = "" Then Text1.Text = "0": Exit Sub
If Not IsNumeric(Text1.Text) Then
If MsgBox("只能输入数字!单击“是”重新编辑。", vbYesNo) = vbYes Then
Text1.SetFocus
Else
Text1.Text = Val(Text1.Tag)
End If
End If
End Sub
如需特殊的数字要求(比如只能输入整数,不能为0等,请继续追问,很愿意为你解答

回答4:

添加以下事件即可。
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub

回答5:

用NumericUpDown
或者MaskedTextBox设置Mask = 9999.99