如何强制将文本输入到大写字母的文本框中?

问题描述 投票:0回答:1

我想使用户在文本框中键入的文本变为大写。我知道有两种方法可以做到这一点:

Textbox1.Text = UCase(Textbox1.Text)
or
Textbox1.Text = Textbox1.Text.ToUpper

但是:两者都具有相同的问题(当嵌入到Textbox1_TextChanged事件处理程序中时),这是因为光标一直移回开始位置,因此,如果您缓慢键入,例如abcdef,它将显示为FEDCBA。每次使文本变为大写字母后,是否有办法将光标移回字符串的末尾?

vba textbox uppercase textchanged
1个回答
1
投票

使用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()仅在该人完成输入文本后使用。

© www.soinside.com 2019 - 2024. All rights reserved.