如何控制文本框只能输入数字(可以是正数或负数)?
发布网友
发布时间:2022-04-30 18:53
我来回答
共3个回答
热心网友
时间:2022-04-22 17:21
使用MaskEdBox控件来指定Mask属性可以很方便实现。
Mask 属性决定了输入到 MaskedEdit 控件中的信息的类型。Mask 属性用占位符定义了输入的类型,这些占位符有井字符 (#)、反斜线 (\)、逗号 (,) 和与号 (&)。下表中列出了所有可用于设置 Mask 属性的字符:
模板字符 描述
# 数字占位符。
. 小数点占位符。最终使用的字符是在区域设置中的小数点占位符。该字符在模板中处理为文字。
, 千位分隔符。最终使用的字符是在区域设置中的千位分隔符。该字符在模板中处理为文字。
: 时间分隔符。最终使用的字符是在区域设置中的时间分隔符。该字符在模板中处理为文字。
/ 日期分隔符。最终使用的字符是在区域设置中的日期分隔符。该字符在模板中处理为文字。
\ 将模板字符串中的下一个字符作为文字处理。这使模板中可以具有 '# '、 '& '、 'A ' 和 '? ' 字符。该字符在模板中处理为文字。
& 字符占位符。该占位符对应的有效值是 32-126 和 128-255 之间的 ANSI 字符。
> 将随后的所有字符转换为大写。
< 将随后的所有字符转换为小写。
A 字母数字字符占位符(必须输入)。例如:a z、A Z 或 0 9。
a 字母数字字符占位符(可选输入)。
9 数字占位符(可选输入)。例如:0 9。
C 字符或空格占位符(可选输入)。
? 字母占位符。例如:a z 或 A Z。
文字 所有其它符号被作为文字显示,也就是说照原样显示。
热心网友
时间:2022-04-22 18:39
想到一个种方法,就是利用ASCII代码来判断
在可输入时,获取来自键盘的ASCII码(不同语言写法不同,这里不列举)
特殊处理"-",结合当前文本框的内容(text属性)长度(lenght),如果长度不为0,则不让输入,加个return;即可
如果获取的ASCII码在48-57之间(含两端数),则让其输入,并显示当前的ASCII码对应的数字
否则都return;即为不可输入
判断ASCII码在48-57之间是根据0-9数字的ASCII码决定的
ASCII码的列表,请查看参考资料(ASCII码图表)
http://ke.baidu.com/image/e1bf87254531d05e34a80fe4
参考资料:http://ke.baidu.com/image/e1bf87254531d05e34a80fe4
热心网友
时间:2022-04-22 20:14
使用KeyPress过程过滤键盘按键值
Private Sub TEXT1_KeyPress( KeyAscii As Integer)
Select Case KeyAscii
Case 48 To 57,45 '数字0-9,-(负号)
Case 8, 16 '退格、删除
Case Else ‘其它按键无效
KeyAscii = 0
End Select
End Sub