| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4424 人关注过本帖
标题:请问文本框如何限制只能输入0或1
只看楼主 加入收藏
taohua300
Rank: 12Rank: 12Rank: 12
来 自:光
等 级:贵宾
威 望:14
帖 子:1636
专家分:3906
注 册:2009-3-11
收藏
得分:0 
If !Empty(Chrtran(this.value,'01',''))
    Messagebox("只能输入01")
Endif


放哪看你需求

个性太多,无法显示
2017-03-27 08:57
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用taifu945在2017-3-27 08:28:18的发言:

题主的意思好像不是说文本框里只能输入一个0或1,而是只允许0和1的组合,不允许2~9的数字录入,但长度不仅限于一位。

那就这样
* 在 Text1.init 上
this.value= ""
* 在 Text1.KeyPress 上
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nKeyCode = 48 OR nKeyCode=49 OR nKeyCode=13 OR nKeyCode=127 OR nKeyCode=27 OR nKeyCode=9 &&只能输入 0 ,1,回车,退格,ESC,TAB
ELSE
   NODEFAULT
ENDIF


[此贴子已经被作者于2017-3-27 09:05编辑过]

2017-03-27 09:01
taohua300
Rank: 12Rank: 12Rank: 12
来 自:光
等 级:贵宾
威 望:14
帖 子:1636
专家分:3906
注 册:2009-3-11
收藏
得分:0 
以下是引用mywisdom88在2017-3-27 09:01:23的发言:


那就这样
* 在 Text1.init 上
this.value= ""
* 在 Text1.KeyPress 上
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nKeyCode = 48 OR nKeyCode=49 OR nKeyCode=13 OR nKeyCode=127 OR nKeyCode=27 OR nKeyCode=9 &&只能输入 0 ,1,回车,退格,ESC,TAB
ELSE
   NODEFAULT
ENDIF

既然这样方向键和删除键也得 加上

个性太多,无法显示
2017-03-27 16:49
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:525
专家分:1278
注 册:2010-1-11
收藏
得分:0 
以下是引用mywisdom88在2017-3-27 09:01:23的发言:


那就这样
* 在 Text1.init 上
this.value= ""
* 在 Text1.KeyPress 上
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nKeyCode = 48 OR nKeyCode=49 OR nKeyCode=13 OR nKeyCode=127 OR nKeyCode=27 OR nKeyCode=9 &&只能输入 0 ,1,回车,退格,ESC,TAB
ELSE
   NODEFAULT
ENDIF


上面可以解决键盘输入限制了,但还应考虑复制粘贴的情况!!
2017-03-28 08:57
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用星光悠蓝在2017-3-28 08:57:53的发言:



上面可以解决键盘输入限制了,但还应考虑复制粘贴的情况!!

*!* Text1.init
this.value=""


*!* Text1.KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
 IF INLIST(nKeyCode,48,49,13,127,27,9,4,5,19,24) &&只能输入 0,1,回车,删除,ESC,TAB,上键,下键,左键,右键
 ELSE
*   MESSAGEBOX(nKeyCode)
    NODEFAULT
 ENDIF


*!* Text1.Valid
LOCAL TxtValue
TxtValue = ALLTRIM(this.Value)
this.Value = TxtValue

FOR i=1 TO LEN(TxtValue)
    IF SUBSTR(TxtValue,i,1) <>"1" AND SUBSTR(TxtValue,i,1)<>"0"
       this.Value = ""
       RETURN
     ENDIF
ENDFOR


[此贴子已经被作者于2017-3-28 12:30编辑过]

2017-03-28 12:05
com2000
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-23
收藏
得分:0 
谢谢各位热心的大侠,学习了。
2017-03-28 21:18
com2000
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-23
收藏
得分:0 
回复 12楼 mywisdom88
正是我需要的,谢谢大侠,大侠对VFP了解得好透彻,谢谢。
2017-03-28 21:23
com2000
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-23
收藏
得分:0 
回复 15楼 mywisdom88
考虑很周全啊,大侠!
2017-03-28 21:23
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
收藏
得分:0 
大家都想多了。只要输入不正常不让失去焦点即可。不用那么多各种键值的。
2017-03-29 13:23
快速回复:请问文本框如何限制只能输入0或1
数据加载中...
 
   



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

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