VB 录入字母大写自动转换成小写及小写自动转换成大写
2009-07-27 18:19
453 查看
要自动转换大小写,很多人首先想到的一定是 UCase$ 及 LCase$,但是要使用这二个函数,一定不可以在 Key_Press 事件中使用,否则您若输入《abc》,结果却变成《CBA》,为什么呢?
因为当您输入 a 之后,UCase$ 会替您转换成 A,但是转换完后,滑鼠的游标会停在 A 的前面,您继续输入 b,变成了 bA,UCase$ 又替您转换成 BA,转换完后,滑鼠的游标又停在 BA 的前面,您继续输入 c,变成了 cBA,UCase$ 又替您转换成 CBA! 若您不相信,可以自己试试
在 Key_Press 中正确的作法,是判断它的参数 KeyAscii !a 的 Asc 值是 97,A 的 Asc 值是 65,所以要自动将小写转成大写,写法如下:
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32
End If
相反的,自动将大写转换成小写:
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii >= 65 And KeyAscii <= 90 Then
KeyAscii = KeyAscii + 32
End If
因为当您输入 a 之后,UCase$ 会替您转换成 A,但是转换完后,滑鼠的游标会停在 A 的前面,您继续输入 b,变成了 bA,UCase$ 又替您转换成 BA,转换完后,滑鼠的游标又停在 BA 的前面,您继续输入 c,变成了 cBA,UCase$ 又替您转换成 CBA! 若您不相信,可以自己试试
在 Key_Press 中正确的作法,是判断它的参数 KeyAscii !a 的 Asc 值是 97,A 的 Asc 值是 65,所以要自动将小写转成大写,写法如下:
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32
End If
相反的,自动将大写转换成小写:
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii >= 65 And KeyAscii <= 90 Then
KeyAscii = KeyAscii + 32
End If
相关文章推荐
- android Editext限制输入数字和字母以及将小写自动转换成大写的方法
- myeclipse把选中的字母转换成大写或者大写转小写
- jackson解析json字符串,首字母大写会自动转为小写的方法
- JavaScript 将字符串第一个字母转换成大写其余的均为小写
- HTML文本框录入字母自动大写
- HTML文本框录入字母自动大写
- 传入一个字符串,已知字符串只由字母组成,将其中的大写字母转换为小写,小写转换为大写,返回转换后的字符串
- 输入一个小写字母 自动输入这个小写字母前面和后面的大写和小写字母
- Excel VBA应用:单元格的字母自动大写转换等操作
- hdu3079 Vowel Counting (strlwr(将字符串中的字母转换为小写);strupr(转换为大写))
- 编写一个函数,将小写字母转换为大写
- vb 去掉html中的回车和tab;转换部分html大写标签为小写
- HTML文本框录入字母自动大写
- 第三章第二十八题将小写字母转换成大写,其他字符不变
- 4.从键盘输入一个大写英文字母,将其转换为小写字母后,将转换后的小写英文字母及其十进制的ASCII码显示到屏幕上。
- C#中把英文字母转换为大写或小写的方法
- swift 字母大小写转换代码,大写转小写,小写转大写都是一行
- EditText 输入字母自动转换为大写
- 丶将字母全部转换为大写或小写
- NSString字符串的大写,小写,首字母大写转换