VBA-如何在文本框中的特定位置设置光标? [英] VBA - How to Set Cursor in a Specific Position in a Textbox?

查看:628
本文介绍了VBA-如何在文本框中的特定位置设置光标?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

标题主要说明了我的需求。我有一个文本框,使用 _keypress 过程不断检查数据的有效性。如果用户输入,那么我会通过键入右括号为他们自动填充。结果为(),并且光标位于文本框的末尾。
我的问题是,如何将光标后退一步以将其置于两个括号之间?谢谢,

The title mostly explains what I need. I have a textbox that I continuously examine for data validity using the _keypress procedure. If the user enters ( then I auto-fill it for them by typing the closing parenthesis ). The result is () and the cursor is at the end of the textbox. My question is, how can I push the cursor back one step to put it between the two parenthesis? Thanks,

编辑:测试场景:

Private Sub txtInput_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    If KeyAscii = Asc("(") Then
        txtInput.value = txtInput.value & "()"
        KeyAscii = 0
    End If

End Sub

希望这使它更加清晰,

推荐答案

使用 SelStart 属性> TextBox 对象:

Use the SelStart property of the TextBox object:

Me.TextBox1.Value = "()"
Me.TextBox1.SelStart = 1

注意: SelStart = 1 表示光标将位于第一个元素之后,即 。因此,您应该使用字符串来了解 SelStart 属性应为

Note: SelStart=1 means the cursor will be after the first element, i.e. "(". You should hence play with your string to understand what your desired value of SelStart property should be.

这篇关于VBA-如何在文本框中的特定位置设置光标?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆