VB怎么控制textbox 只能输入正整数????
我想设定text1只能输入正整数,以下是代码:PrivateSubText1_Validate(CancelAsBoolean)IfNotIsNumeric(Text1)...
我想设定text1只能输入正整数,以下是代码:
Private Sub Text1_Validate(Cancel As Boolean)
If Not IsNumeric(Text1) Or Val(Text1) Mod 1 <> 0 Or Val(Text1) < 0 Then
MsgBox "请输入一个正整数。", vbCritical, "错误"
Cancel = True
End If
End Sub
可是为什么还是可以输入小数啊!!!到底错在哪?望高手指点。
最好在我原来的上面找出错误改一下,谢谢! 展开
Private Sub Text1_Validate(Cancel As Boolean)
If Not IsNumeric(Text1) Or Val(Text1) Mod 1 <> 0 Or Val(Text1) < 0 Then
MsgBox "请输入一个正整数。", vbCritical, "错误"
Cancel = True
End If
End Sub
可是为什么还是可以输入小数啊!!!到底错在哪?望高手指点。
最好在我原来的上面找出错误改一下,谢谢! 展开
4个回答
展开全部
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的值,
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的值,
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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的话,小键盘输入时,也会出现错误提示。
If KeyCode < 48 Or KeyCode > 57 Then
MsgBox "请输入一个正整数。", vbCritical, "错误"
Cancel = True
End If
End Sub
应该使用keydown事件,用keypress的话,小键盘输入时,也会出现错误提示。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'加上下面的过程
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询