我想使用户在文本框中键入的文本变为大写。我知道有两种方法可以做到这一点:
Textbox1.Text = UCase(Textbox1.Text)
or
Textbox1.Text = Textbox1.Text.ToUpper
但是:两者都具有相同的问题(当嵌入到Textbox1_TextChanged
事件处理程序中时),这是因为光标一直移回开始位置,因此,如果您缓慢键入,例如abcdef,它将显示为FEDCBA。每次使文本变为大写字母后,是否有办法将光标移回字符串的末尾?
使用KeyPress事件检测输入的小写字母,然后将它们转换为大写:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii > 96 And KeyAscii < 123 Then
'Typed letter from "a-z", map it to "A-Z"
KeyAscii = KeyAscii - 32
End If
End Sub
[Ucase()
仅在该人完成输入文本后使用。