VB6 - Вкладка между текстовыми полями.Как получить фокус курсора всегда в конце значения текстового поля - PullRequest
0 голосов
/ 13 января 2012

У меня есть форма с серией текстовых полей, каждое из которых может быть длиной 8 цифр.У меня есть кнопка, которая перебирает форму и заполняет первые четыре цифры (0123).Когда я перемещаюсь между текстовыми полями, как я могу сделать так, чтобы фокус курсора всегда шел до конца строки, то есть после четвертой цифры?Спасибо:)

Ответы [ 4 ]

4 голосов
/ 13 января 2012

Поместите этот код в исходный файл формы.

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

Предполагается, что у вас есть текстовое поле с именем Text1.Когда он имеет фокус, курсор помещается в конец текстового поля.

3 голосов
/ 13 января 2012
Private Sub Text1_GotFocus()
  Text1.SelStart = 4
End Sub
1 голос
/ 13 января 2012

Если точка wqw верна, и вы хотите, чтобы это происходило только при нажатии на вкладку, а не при щелчке мышью, тогда вы бы объединили существующие ответы с событием forms_KeyUp, если клавиша вверх равна 9, тогда это кнопка вкладки может затем вызвать метод Selstart.

0 голосов
/ 20 января 2012

Поскольку вы упомянули, что у вас есть серия текстовых полей, вы можете использовать один метод, чтобы установить позицию курсора в конец текстового поля для каждого элемента управления 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

Однако, когда пользователь меняет позицию курсора в любом из текстовых полей, он остается неизменным, когда он покидает и приходитвернуться к текстовому полю.В зависимости от вашего сценария это может быть или не быть желаемым поведением.Например, в первый раз, когда любое текстовое поле получает фокус, курсор находится в конце.Если пользователь решает изменить позицию курсора, оставить и вернуться к тому же текстовому полю, курсор находится там, где он его оставил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...