急!如何设置editmask,使得该字段只能输入大写字母!
rt 问题点数:50、回复次数:14Top
1 楼hszjx(留心剑)回复于 2005-09-05 15:40:35 得分 10
maskdatatype设为stringmask!,textcase设为upper!Top
2 楼hszjx(留心剑)回复于 2005-09-05 15:44:02 得分 0
mask设为!XXXXXXXXXTop
3 楼cqulzh(Eexcelence)回复于 2005-09-05 16:14:06 得分 0
不好意思我没说清楚,我指的是dw中的列!Top
4 楼saiche05(赛车)回复于 2005-09-05 16:18:59 得分 0
ingTop
5 楼li_d_s(鄙视那些不懂Java却跑来乱骂的人,.NET没啥了不起)回复于 2005-09-05 16:21:54 得分 3
我试了一下,大写(mask:!!!!!!)倒是可以,但是又要大写又只能字母好像不行,干吗不用事后检查呢?Top
6 楼cqulzh(Eexcelence)回复于 2005-09-05 16:40:49 得分 0
to : li_d_s
me too! 大写(mask:!!!!!!)倒是可以;
如果能通过设置实现“既要大写又只能字母”,可以简化程序开发,实在不行只有像你说的那样事后检查啦!Top
7 楼cqulzh(Eexcelence)回复于 2005-09-06 09:48:15 得分 0
顶Top
8 楼lzheng2001(1加1)回复于 2005-09-06 11:25:14 得分 0
具体没试过editmask行不行,
但,不管用户输入大小写,在保存时 用upper()转换一下就行了
Top
9 楼cqulzh(Eexcelence)回复于 2005-09-06 11:53:55 得分 0
to : lzheng2001(1加1) 有没办法限制用户只能输入字母Top
10 楼lzheng2001(1加1)回复于 2005-09-06 16:24:01 得分 0
试试用变通的方法吧, 列的编辑改成一般的edit,case 属性中选上upper
为dw 加一个ue_char事件 pbm_char
CHOOSE CASE Key
CASE "A","B","C", ....
MessageBox("测试","按下了字母键")
CASE ELSE
RETURN 1 //这里拒绝输入非数字字符
END CHOOSE
或者
IF dw_1.getColumnName() = "..." then
CHOOSE CASE asc(Key)
CASE IS >= 65 and IS <= 90 //A - Z
//
CASE IS >= 97 and IS <= 122 //a - z
//
CASE ELSE
RETURN 1 //这里拒绝输入字母字符
END CHOOSE
End if
以上代码适于各种编辑控件,应该也适用于DW的,你自己测试一下
Top
11 楼cqulzh(Eexcelence)回复于 2005-09-06 17:15:39 得分 0
to: lzheng2001(1加1)
刚才试了,不行!
感谢各位的热心帮忙!Top
12 楼lzheng2001(1加1)回复于 2005-09-07 00:12:19 得分 15
不行的话,要在key事件,other 事件,或者editchanged事件中下功夫了.
Top
13 楼maerxiao(小马儿)回复于 2005-09-07 01:45:39 得分 2
editchanged中:
this.SetValue(String(dwo.name), row, Upper(data))
但愿光标不会跳走^_^Top
14 楼xtfw(xtfw)回复于 2005-09-08 00:03:00 得分 20
在数据窗口中字段的有效性规则中输入:
match(gettext(),"^[A-Z]+$")Top




