VB 限制TEXT输入数字,且只能输入小数点后两位数。
比如text1输入中文/英文时,不响应。输入数字响应。输入带小数点的数字时,只允许输入小数点后两位。求高手帮忙,求代码,谢谢!...
比如text1输入中文/英文时,不响应。输入数字响应。 输入带小数点的数字时,只允许输入小数点后两位。求高手帮忙,求代码,谢谢!
展开
展开全部
Private Sub Text1_keypress(keyascii As Integer)
'控制输入的字符为0-9,小数点,退格
If (Chr(keyascii) > "9 " Or Chr(keyascii) < "0 ") And Chr(keyascii) <> "." And keyascii <> 48 And keyascii <> 8 Then
keyascii = 0
Beep
Beep
End If
'控制输入的字符串长度大于等于3的时候,倒数第3个如果为小数点,那么后边只识别退格,其它键都放弃
If Len(Text1.Text) >= 3 And Left(Right(Text1.Text, 3), 1) = "." And keyascii <> 8 Then
keyascii = 0
End If
'控制输入的字符串长度大于1的时候,如果已输入小数点,那么后边的小数点就放弃,
If Len(Text1.Text) >= 1 And InStr(Text1.Text, ".") <> 0 And Chr(keyascii) = "." Then
keyascii = 0
End If
End Sub
我刚刚试了一下。可以。希望能帮到你
'控制输入的字符为0-9,小数点,退格
If (Chr(keyascii) > "9 " Or Chr(keyascii) < "0 ") And Chr(keyascii) <> "." And keyascii <> 48 And keyascii <> 8 Then
keyascii = 0
Beep
Beep
End If
'控制输入的字符串长度大于等于3的时候,倒数第3个如果为小数点,那么后边只识别退格,其它键都放弃
If Len(Text1.Text) >= 3 And Left(Right(Text1.Text, 3), 1) = "." And keyascii <> 8 Then
keyascii = 0
End If
'控制输入的字符串长度大于1的时候,如果已输入小数点,那么后边的小数点就放弃,
If Len(Text1.Text) >= 1 And InStr(Text1.Text, ".") <> 0 And Chr(keyascii) = "." Then
keyascii = 0
End If
End Sub
我刚刚试了一下。可以。希望能帮到你
展开全部
'*********************************************************************************************
'名称 Sub_CheckNum
'作者 Morn Woo
'功能 检查键入的是否是数字 ,不是则释放按键
'参数 iPressKey(引用传递):按键的ASCII码;如果要处理浮点数的输入,则要把已经输入的部分作为参数sstr 传入
'应用方法 在keypress事件中调用,用事件的KeyAscii参数作为这里的参数inatural,当使用s参数时为检查字符输入
'*********************************************************************************************
Sub Sub_CheckNum(ByRef iPressKey As Integer, Optional sStr = "")
sStr = Trim(sStr)
If Len(sStr) = 0 Then
'1处理自然数输入的情况
Select Case iPressKey
Case 48 To 57, 8, 13 '8是backspace,131enter
'处理数字字符问题
Case Else:: iPressKey = 0
End Select
Else
'2处理浮点数输入的情况
Select Case iPressKey
Case 45 '处理负号字符问题
If InStr(sStr, "-") > 0 Then: iPressKey = 0
Case 48 To 57, 8, 13 '处理数字字符问题
Case 44: If sStr = "" Then iPressKey = 0 '处理逗号字符问题
Case 46 '处理小数点字符问题
If InStr(sStr, ".") > 0 Then: iPressKey = 0
Case Else:: iPressKey = 0
End Select
End If
End Sub
'名称 Sub_CheckNum
'作者 Morn Woo
'功能 检查键入的是否是数字 ,不是则释放按键
'参数 iPressKey(引用传递):按键的ASCII码;如果要处理浮点数的输入,则要把已经输入的部分作为参数sstr 传入
'应用方法 在keypress事件中调用,用事件的KeyAscii参数作为这里的参数inatural,当使用s参数时为检查字符输入
'*********************************************************************************************
Sub Sub_CheckNum(ByRef iPressKey As Integer, Optional sStr = "")
sStr = Trim(sStr)
If Len(sStr) = 0 Then
'1处理自然数输入的情况
Select Case iPressKey
Case 48 To 57, 8, 13 '8是backspace,131enter
'处理数字字符问题
Case Else:: iPressKey = 0
End Select
Else
'2处理浮点数输入的情况
Select Case iPressKey
Case 45 '处理负号字符问题
If InStr(sStr, "-") > 0 Then: iPressKey = 0
Case 48 To 57, 8, 13 '处理数字字符问题
Case 44: If sStr = "" Then iPressKey = 0 '处理逗号字符问题
Case 46 '处理小数点字符问题
If InStr(sStr, ".") > 0 Then: iPressKey = 0
Case Else:: iPressKey = 0
End Select
End If
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用正则
\d*[\.\d]\d{2}
\d*[\.\d]\d{2}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询