读书人

一个对于半角和全角混合输入的思路求

发布时间: 2011-12-18 22:54:38 作者: rapoo

一个关于半角和全角混合输入的思路,求解!
一个文本输入框,最大可输入字符设定为20,允许全半角混合输入。
比如:输入数字和字母算半角,占一个字符位置,输入中文算全角,占2个字符位置。
全角+半角总数等于20,
即 全角字符x2 + 半角字符x1 = 20

以上问题已经可以解决,不过当半角是19个时,要求限制只能再输入一个半角,而不允许输入一个全角,怎么做呢?

思来想去,现在是当输入时,触发textbox_textchange事件来处理,只有当输入的字符已经显示在textbox框里了才进行全半角的判断的,在输入以前貌似没有办法知道下一个是全角还是半角,所以想不出怎么限制在已经有19个字符的情况下只能半角输入而不能全角输入。

求高人指点!万分感谢!

[解决办法]
在key_down和keyUP事件判断
[解决办法]
全角的asc值为负值,从这来判断
当长度为19时,判断最后一个是全角还是半角,如果是全角把限制改为21
[解决办法]
的确在 Text_Change 事件中,将超过长度的字符截掉最简单,否则你处理要处理键盘输入还有解决用鼠标右键菜单粘贴的问题。

读书人网 >VB Dotnet

热点推荐