VB怎么控制textbox 只能输入正整数???
发布网友
发布时间:2022-05-14 23:12
我来回答
共4个回答
热心网友
时间:2023-11-06 17:11
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
MsgBox "请输入一个正整数。", vbCritical, "错误"
Cancel = True
KeyAscii=0
end if
End Sub
你那错误有几个,
1.Text1_Validate函数是获得当前焦点,在你输入后当前焦点变为下一个,即空格,所以你会出错
2.IsNumeric(Text1)应该为IsNumeric(Text1.text)这样才能获得text1的值,
热心网友
时间:2023-11-06 17:12
Validate事件 在焦点转换到一个(第二个)控件之前发生 也就是和其他控件切换焦点之前 用此事件来做判断也未尝不可
Private Sub Text1_Validate(Cancel As Boolean)
If IsNumeric(Text1.Text) = True Then
If Fix(Text1.Text) <> Text1.Text Then
MsgBox "请输入一个正整数。", vbCritical, "错误"
Cancel = True
End If
Else
MsgBox "请输入一个正整数。", vbCritical, "错误"
Cancel = True
End If
End Sub
热心网友
时间:2023-11-06 17:12
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode < 48 Or KeyCode > 57 Then
MsgBox "请输入一个正整数。", vbCritical, "错误"
Cancel = True
End If
End Sub
应该使用keydown事件,用keypress的话,小键盘输入时,也会出现错误提示。
热心网友
时间:2023-11-06 17:13
'加上下面的过程
Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii < 48 Or KeyAscii > 57) Then
KeyAscii = 0
End If
End Sub
更多VB代码,请参阅我的博客:http://hi.baidu.com/zgmg