注册 登录
编程论坛 VB6论坛

[你要一行?]关于限制VB6的TextBox控件只输入一个数字的解决办法

QiMissMoMo 发布于 2016-02-08 22:38, 3839 次点击
一点很小的见解。

有些时候我们都需要让用户只输入一个简单的数字。而VB的TextBox控件也比较灵活。
无论是数字字母还是中文都可以接受。所以这个时候我们就需要一点手段来限制TB的输入了。

但是在百度上面的查找结果(呃,我在本论坛也看到这个结果了)大多是keypress事件之类的,还要配合ascii码,这个办法稍显麻烦。
而且很多VB见习者并不知道ascii为何物。更重要的是,通过快捷键复制的方式可以轻松绕过这个限制。
没错,可以再写个textchange事件,甚至你还可以通过在程序内禁用复制粘贴来实现限制。但是这样已经违背程序设计的初衷了。

下面给出一个限制TextBox输入的办法:
主要思想是还是通过change()事件 + if判断的办法。
可以轻松免疫 Ctrl+V了。

程序代码:

Private Sub Text1_Change()
a = Text1.Text
If Len(a) > 1 Or a < 0 Or a > 9 Then
Text1.Text = ""
End If
End Sub



嘛,既然版主要求只要一行代码那我就给出来我的这种吧。

Text1.Text = IIf(Len(a) > 1 Or a > 9 Or a < 0, "", Text1.Text)



[此贴子已经被作者于2016-2-13 14:40编辑过]

5 回复
#2
yangfrancis2016-02-09 16:35
If Len(a) > 1 Or Val(a) < 0 Or Val(a) > 9 Then
#3
wmf20142016-02-09 18:15
一行不就够了:if len(text1)>1 or not isnumeric(text1) then text1=""
#4
QiMissMoMo2016-02-09 23:05
回复 3楼 wmf2014
哦?阁下的“一行”甚是了得啊!
#5
QiMissMoMo2016-02-13 14:39
回复 3楼 wmf2014
Text1.Text = IIf(Len(a) > 1 Or a > 9 Or a < 0, "", Text1.Text)
#6
dyt52016-02-24 18:19
1