VB6 - 文本框之间的标签。如何将光标焦点始终放在文本框值的末尾

时间:2012-01-12 20:40:57

标签: vb6 textbox

我有一个带有一系列文本框的表单,每个文本框的长度可以是8位数。我有一个循环通过表单的按钮,并填入前四位数字(0123)。当我在文本框之间切换时,如何始终将光标焦点放在行的末尾,即在第四个数字之后?谢谢:))

4 个答案:

答案 0 :(得分:4)

将此代码放在表单的源文件中。

Private Sub Text1_GotFocus()
    Text1.SelStart = Len(Text1.Text)
End Sub 

这假定您有一个名为Text1的文本框。当它具有焦点时,光标位于文本框的末尾。

答案 1 :(得分:3)

Private Sub Text1_GotFocus()
  Text1.SelStart = 4
End Sub

答案 2 :(得分:1)

如果wqw的点是正确的,并且你只需要按Tab键而不是用鼠标点击那么你将现有的答案与forms_KeyUp事件结合起来,如果key up为9那么这就是tab键和你然后可以调用Selstart方法。

答案 3 :(得分:0)

由于您提到您有一系列文本框,因此可以使用单个方法将光标位置设置为Form_Load上每个控件的文本框末尾。对于每个文本框,这将需要比事件处理程序少得多的代码。

Dim o As Variant
For Each o In Form1.Controls
    If TypeName(o) = "TextBox" Then
        Dim x As TextBox
        Set x = o
        x.SelStart = Len(x.Text)
    End If
Next

但是,当用户更改任何文本框中的光标位置时,它们会在离开并返回文本框时保持更改状态。根据您的情况,这可能是也可能不是您想要的行为。例如,第一次任何文本框获得焦点时,光标位于末尾。如果用户决定更改光标位置并离开并返回到同一文本框,则光标位于它们离开的位置。