| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3580 人关注过本帖
标题:[你要一行?]关于限制VB6的TextBox控件只输入一个数字的解决办法
只看楼主 加入收藏
QiMissMoMo
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2016-2-8
收藏
 问题点数:0 回复次数:5 
[你要一行?]关于限制VB6的TextBox控件只输入一个数字的解决办法
一点很小的见解。

有些时候我们都需要让用户只输入一个简单的数字。而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编辑过]

搜索更多相关主题的帖子: 百度 中文 而且 用户 
2016-02-08 22:38
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
If Len(a) > 1 Or Val(a) < 0 Or Val(a) > 9 Then
2016-02-09 16:35
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
一行不就够了:if len(text1)>1 or not isnumeric(text1) then text1=""

能编个毛线衣吗?
2016-02-09 18:15
QiMissMoMo
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2016-2-8
收藏
得分:0 
回复 3楼 wmf2014
哦?阁下的“一行”甚是了得啊!
2016-02-09 23:05
QiMissMoMo
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2016-2-8
收藏
得分:0 
回复 3楼 wmf2014
Text1.Text = IIf(Len(a) > 1 Or a > 9 Or a < 0, "", Text1.Text)
2016-02-13 14:39
dyt5
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-2-24
收藏
得分:0 
2016-02-24 18:19
快速回复:[你要一行?]关于限制VB6的TextBox控件只输入一个数字的解决办法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015406 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved