Как перейти к предыдущему элементу управления в VB6? - PullRequest
0 голосов
/ 20 февраля 2012

Итак, у меня есть несколько списков в форме VB. Я тоже создал командную кнопку.

Я хочу сделать так, чтобы, если я нажму командную кнопку, он циклически переключался с текущего списка, в котором есть фокус, на предыдущий список. Это эквивалентно использованию TAB и SHIFT TAB для циклического переключения между элементами управления. SHIFT TAB идет назад в цикле, TAB идет вперед в цикле. Я смутно помню, что в «цикле вкладок» был способ идти вперед и назад.

Как мне это сделать?

1 Ответ

1 голос
/ 20 февраля 2012

Вы можете;

Private mCurrentListboxTabIndex As Integer

'wire up, simpler if you use a control array
Private Sub List1_GotFocus()
    mCurrentListboxTabIndex = List1.TabIndex
End Sub

Private Sub List2_GotFocus()
    mCurrentListboxTabIndex = List2.TabIndex
End Sub

Private Sub List3_GotFocus()
    mCurrentListboxTabIndex = List3.TabIndex
End Sub

Private Sub btnPrev_Click()
    FocusListBoxByTabIndex -1
End Sub

Private Sub btnNext_Click()
    FocusListBoxByTabIndex 1
End Sub

Private Sub FocusListBoxByTabIndex(offset As Long)
    Dim ctrl As VB.Control
    For Each ctrl In Me
        If TypeOf ctrl Is ListBox Then
            If ctrl.TabIndex = mCurrentListboxTabIndex + offset Then
                ctrl.SetFocus
                Exit Sub
            End If
        End If
    Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...