Страницы: 1
RSS
Активация элемента Texbox по нажатию клавиши средствами VB
 
Доброго времени суток!
Есть 3 TextBox-a (TextBox1, TextBox2 и TextBox3). Как сделать чтобы по событию Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) при нажатии клавиши (например TAB) , активировался элемент TextBox2?
 
Получается, что на событие Exit? Активировать - передать фокус:
Код
TextBox2.setfocus
 
 
TextBox2.SetFocus
а конкретно для клавиши Tab - у контролов есть свойства TabIndex, TabKeyBehavior и TabStop  
Изменено: ikki - 11.10.2014 20:00:23
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
При такой конструкции:

Код
If KeyCode = vbKeyTab Then
        TextBox1.SetFocus
End If
 

Выдает ошибку "Run-time error '438' Object doesn't support this property or method". Может что не так делаю?
Изменено: gogi - 11.10.2014 20:08:31
 
Я же говорил про Exit - Нажатие на Tab вызовет событие Exit.
А вообще Саша правильно посмотрел в сторону индексов - расставьте правильные, и ничего программировать не придётся.
 
Я сделал так:

Код
If KeyCode = vbKeyTab Then
        Me.TextBox1.Activate
End If
 
 
Код
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Me.TextBox2.SetFocus
End Sub
 
Но можно из этого - расставьте индексы правильно, и можно обойтись без кода.
 
Подскажите пожалуйста. При выходе из TextBox VidOtdelki надо чтобы появился по условию и установился курсор на TextBox Sloy.
Однако при выходе из TextBox VidOtdelki, Sloy появляется, но курсор перепрыгивает через несколько TextBox-ов.

Код
Private Sub VidOtdelki_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    If VidOtdelki = "Лак10" Or VidOtdelki = "Лак25" Then
        Sloy.Visible = True
        Label11.Visible = True
        Sloy.SetFocus
    Else
        Sloy.Visible = False
    End If
    
End Sub
Изменено: kiv3383 - 27.03.2020 15:48:27
 
Создайте отдельную тему с названием, отражающим суть задачи.
Страницы: 1
Наверх