vb文本框只能输数字和小数点,怎么不能做成一个过程来调用?
PrivateSubText1_KeyPress(KeyAsciiAsInteger)JCSJ'调用检查数字endsubsubJCSJ()SelectCaseKeyAsc...
Private Sub Text1_KeyPress(KeyAscii As Integer)
JCSJ '调用检查数字
end sub
sub JCSJ()
Select Case KeyAscii
Case Asc("0") To Asc("9"), vbKeyBack, Asc(".") '允许0~9数字和退格键和符号“.”
Case Else
KeyAscii = 0
Beep '其他的发出Beep声音
MsgBox "只能输入数字!"
End Select
end sub
直接在Text1_KeyPress中用得好好的,怎么调用就不行呢?输入数字也提示错误! 展开
JCSJ '调用检查数字
end sub
sub JCSJ()
Select Case KeyAscii
Case Asc("0") To Asc("9"), vbKeyBack, Asc(".") '允许0~9数字和退格键和符号“.”
Case Else
KeyAscii = 0
Beep '其他的发出Beep声音
MsgBox "只能输入数字!"
End Select
end sub
直接在Text1_KeyPress中用得好好的,怎么调用就不行呢?输入数字也提示错误! 展开
展开全部
因为必要参数没传递进去,假如说你传递 KeyAscii变量到 JCSJ 过程里,那在过程里修改还是不影响控件的数据。
你要想方便,可以用这种方式:
Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = KeepNumAsc(KeyAscii) '过滤
End Sub
Function KeepNumAsc(KeyAscii As Integer) As Integer
Select Case KeyAscii
Case Asc("0") To Asc("9"), vbKeyBack, Asc(".") '允许0~9数字和退格键和符号“.”
KeepNumAsc = KeyAscii
Case Else
KeepNumAsc = 0
Beep '其他的发出Beep声音
MsgBox "只能输入数字!"
End Select
End Function
你要想方便,可以用这种方式:
Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = KeepNumAsc(KeyAscii) '过滤
End Sub
Function KeepNumAsc(KeyAscii As Integer) As Integer
Select Case KeyAscii
Case Asc("0") To Asc("9"), vbKeyBack, Asc(".") '允许0~9数字和退格键和符号“.”
KeepNumAsc = KeyAscii
Case Else
KeepNumAsc = 0
Beep '其他的发出Beep声音
MsgBox "只能输入数字!"
End Select
End Function
展开全部
私人:子Text1_KeyPress(KeyAscii作为整数)
如果KeyAscii = 46或(KeyAscii> = 48和KeyAscii <= 57)或KeyAscii = 8然后
其他
KeyAscii = 0 BR />结束如果
结束小组
如果KeyAscii = 46或(KeyAscii> = 48和KeyAscii <= 57)或KeyAscii = 8然后
其他
KeyAscii = 0 BR />结束如果
结束小组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调用过程时记得传递必要参数。。。-_-||
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询