VBA - 如何在文本框的特定位置设置光标?
VBA - How to Set Cursor in a Specific Position in a Textbox?
标题主要说明了我的需要。我有一个文本框,我使用 _keypress
过程不断检查数据有效性。如果用户输入 (
,那么我会通过输入右括号 )
来为他们 auto-fill。结果为 ()
,光标位于文本框的末尾。
我的问题是,如何将光标后退一步以将其放在两个括号之间?谢谢,
编辑:测试场景:
Private Sub txtInput_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = Asc("(") Then
txtInput.value = txtInput.value & "()"
KeyAscii = 0
End If
End Sub
希望这样更清楚,
使用TextBox
对象的SelStart
属性:
Me.TextBox1.Value = "()"
Me.TextBox1.SelStart = 1
注意:SelStart=1
表示光标将在第一个元素之后,即“(
”。因此,您应该使用您的字符串来了解您想要的 SelStart
属性 值应该是什么。
标题主要说明了我的需要。我有一个文本框,我使用 _keypress
过程不断检查数据有效性。如果用户输入 (
,那么我会通过输入右括号 )
来为他们 auto-fill。结果为 ()
,光标位于文本框的末尾。
我的问题是,如何将光标后退一步以将其放在两个括号之间?谢谢,
编辑:测试场景:
Private Sub txtInput_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = Asc("(") Then
txtInput.value = txtInput.value & "()"
KeyAscii = 0
End If
End Sub
希望这样更清楚,
使用TextBox
对象的SelStart
属性:
Me.TextBox1.Value = "()"
Me.TextBox1.SelStart = 1
注意:SelStart=1
表示光标将在第一个元素之后,即“(
”。因此,您应该使用您的字符串来了解您想要的 SelStart
属性 值应该是什么。