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

如题所述

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

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

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-07-22

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,在文本框中输入任意字符,可以看到只有数字能显示在文本框中。按退格键,字符也能正常删除。

本回答被网友采纳
第2个回答  2011-08-07
(二楼那个不能输入小数点和科学计算,还有其他进制,我重新编了一个,要事先把文本框的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等,请继续追问,很愿意为你解答
第3个回答  推荐于2018-02-27
添加以下事件即可。
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub本回答被提问者和网友采纳
第4个回答  2011-08-07
用NumericUpDown
或者MaskedTextBox设置Mask = 9999.99

在vb中,如何使文本框中只允许输入数字
调试运行。按F5,在文本框中输入任意字符,可以看到只有数字能显示在文本框中。按退格键,字符也能正常删除。如果输入的数字可能是小数,那么还要添加如下代码: If KeyAscii = 46 And Not CBool(InStr(txbNumber, ".")) Then Exit Sub 当输入小数点时,程序判断文本框中是否已有小数点(...

怎样为VB窗体中的所有文本框限制只输入数字?
除非你的所有文本框属于同一个控件数组,否则的话就要给每个文本框都写个同样的事件代码了(当然也可以做个自定义过程稍微简化一下)如果是控件数组,那么只需一个事件过程即可:Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)If KeyAscii = 46 And InStr(Text1(Index), "."))...

VB中让一个文本框只能输入一个数字该怎么设置
select case KeyAscii case 8 '退格键 '可以不输入处理代码 case 13 '回车键 '可以不输入处理代码 case 27 'ESC键 '可以不输入处理代码 case 48 to 57 '输入的是数字 case else KeyAscii=0 '不是以上的全部取消按键 end select 输入长度限制可以通过设置TEXT控件的MaxLength属性来限制 楼上的方...

vb6.0里怎样让一个textbox中只能输入数字,而不能输入字母,如果输入字母...
1、textbox获得焦点时,锁定字母键,只开放数字键(或小键盘)。2、命令按钮中加入一段测试控制程序,点击命令按钮后,先测试textbox中是否为你要求的数字类型,如果有字母的话,则跳出“输入错误”对话框,textbox中是你要求的数字类型才能放行。

VB中,怎么使TEXT控件只能输入数字行数据(包括小数)?
MsgBox "请输入数字或小数点!"KeyAscii = 0 End Select End Sub Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)Select Case KeyCode Case vbKeyHome, vbKeyLeft, vbKeyUp '限制只能在末尾输入 KeyCode = 0 End Select End Sub Private Sub Text1_MouseDown(Button As Integer...

vb文本框怎么才能限制输入(英文、数字或符号)?
上面写的意思是:如果按下键的Ascii码值小于48 或者 大于57 这时候就把Ascii值变为0(就是不输入什么东西)上面这个的意思为只能输入数字...

vb中限制一个文本框只能输入数字和一个小数点和退格键。
End IfElse If (Chr(KeyAscii) > "9 " Or Chr(KeyAscii) < "0 ") And Chr(KeyAscii) <> "." And KeyAscii <> 48 And KeyAscii <> 8 Then KeyAscii = 0 End IfEnd IfEnd Sub在窗体中建立一个text1的文本框,输入如上命令即可实现。

VB文本框如何实现只能输入1-100数字
Private Sub Text1_LostFocus()If Val(Text1.Text) < 0 Or Val(Text1.Text) > 100 Then MsgBox "请输入1-100的数字"End Sub

VB6.0中,怎么样让文本框只能输入数字与小数点,及退格键。 请各位帮助...
利用文本框的 Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii < Asc(0) Or KeyAscii > Asc(9) Then KeyAscii = 0 MsgBox "请输入数字"End If End Sub 是只能接收输入数字的代码。asc()函数是求ascii值的 小数点问题你自己试着用asc函数解决。

vb中,如何限制输入的文本框的内容只能是数字数或者字母?
MsgBox "不是数字,请输入数字", 0, "提示"Text1.SetFocus Text1.SelStart = Len(Text1)SendKeys "{BACKSPACE}"End If End Sub Private Sub Text2_KeyPress(KeyAscii As Integer)If Chr(KeyAscii) Like "[a-zA-Z]" = False Then MsgBox "不是字母,请输入字母", 0, "提示"KeyAscii =...

相似回答