VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 输入时,自动转换成小写或小写
发表评论(0)作者:, 平台:, 阅读:10106, 日期:2000-05-11


主题: 输入时,自动转换成小写?

来源:小纪 (纪文和)

资料整理:影子 VB爱好者乐园 yingzi007.126.com




要自动转换大小写,很多人首先想到的一定是 UCase$ 及 LCase$,但是要使用这二个函数,一定不可以在 Key_Press 事件中使用,否则您若输入《ABC》,结果却变成《cba》,为什么呢?


因为当您输入 A 之后,LCase$ 会替您转换成 a,但是转换完后,滑鼠的游标会停在 a 的前面,您继续输入 B,变成了 Ba,LCase$ 又替您转换成 ba,转换完后,滑鼠的游标又停在 ba 的前面,您继续输入 C,变成了 Cba,LCase$ 又替您转换成 cba!﹝若您不相信,可以自己试试﹞


在 Key_Press 中正确的作法,是判断它的参数 KeyAscii !a 的 Asc 值是 97,A 的 Asc 值是 65,所以要自动將大写转成小写,写法如下:


Private Sub Text2_KeyPress(KeyAscii As Integer)

If KeyAscii >= 65 And KeyAscii <= 90 Then

KeyAscii = KeyAscii + 32

End If

End Sub





主题: 输入时,自动转换成大写?

来源:小纪 (纪文和)

资料整理:影子 VB爱好者乐园 yingzi007.126.com





要自动转换大小写,很多人首先想到的一定是 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

End Sub