如何将输入小写字母自动转换成大写
编号:QA000429
建立日期: 1999年1月27日 最后修改日期:2002年3月17日
所属类别:
Michael Zhu:
英文版VB5.0
英文版win95
在textbox中输入小写字母,想转换成大写。但用了Ucase()函数时,发现每输入一个小写字母,可以变为大写但光标始终在textbox的第一行,所以当输入abcd后,即显示DCBA.
程序如下:
Private Sub Text1_Change()
Text1.Text = UCase(Text1.Text)
End Sub
问:是否能够在VB里控制光标的位置或者有其他函数可以达到目的。
回答:
可以使用SelStart属性来移动光标。如下面:
Private Sub Text1_Change()
Text1.Text = UCase(Text1.Text)
Text1.SelStart = Len(Text1.Text)
End Sub
徐旭问:
操作系统: windows 95/98/2000
编程工具: VBA或vb5.0/6.0
问题: 我在贵站的网页上找到我的问题的答案并不是vb中的用法。
我的问题是如何捕获键盘CAPLOCK,NUMLOCK键的状态,并如何设置他们。我要的目的是,无论键盘的状态是如何,输入的字母将全是大写。也许你们认为可以在textbox_change()事件中使用UCASE()函数,在正常情况下是可以的,但当键盘的状态是小写时,在文本框的已输的文本中间插入一个单词时会由于change()事件,将光标移到末尾。
水平: 中级
答:QA001753 "如何在程序中设置按下Caps Lock 键"介绍的方法使用的是C语言,不过调用的是API函数,你可以把它改写成VB的。也可以使用上面的方法,针对你提的光标的问题,可以改成下面这样:
Private Sub Text1_Change()
Dim n As Integer
n = Text1.SelStart
Text1.Text = UCase(Text1.Text)
Text1.SelStart = n
End Sub
Yang Hailin的意见:
在TEXT1_Keypress事件中加入KEYASCII=ASC(UCASE(CHR(KEYASCII)))
cansum的意见:
也可以使用format(text1.text,">")将字符串全部转换为大写。
主持人注:类似的,format(text1.text,"<")相当于LCase。
此问题由李海回答。
| |
|
|
| |
|
|