TopPicLogo TopPicText

Список (ListBox) - Циклическое перемещение по списку и обработка нажатий клавиш.

Данная процедура "вешается" на событие "Клаваша вниз" поля со списком.

В данном примере рассмотрен случай когда форма не несет на себе ничего кроме самого списка.
То есть, это некое меню - единственным предназначением которого служит выбор одного значения из нескольких.
Работает это так:
      Если пользователь находится на самом нижнем элементе списка и нажимет клавишу ВНИЗ - то тут же оказывается на первом элементе списка, и наоборот, если на самом верхнем нажимет клавишу ВВЕРХ - то оказывается на последнем.
... а при нажатии ENTER - программа принимает значение выбранное в списке, закрывает форму и делает то что положено при выборе данного значения.

Private Sub lstTest_KeyDown(KeyCode As Integer, Shift As Integer)
'Нажатие клавиши в списке - Бегаем по кругу и ждём [ENTER]
On Error GoTo KeyDownERR
    Select Case KeyCode
        Case vbKeyUp 'Нажата клавиша ВВЕРХ
            If Me!lstTest.ListIndex = 0 Then
                KeyCode = 0
                Me!lstTest.ListIndex = Me!lstTest.ListCount - 1
            End If
        Case vbKeyDown 'Нажата клавиша ВНИЗ
            If Me!lstTest.ListIndex = Me!lstTest.ListCount - 1 Then
                KeyCode = 0
                Me!lstTest.ListIndex = 0
            End If
        Case vbKeyReturn 'Нажата клавиша ENTER
            ' ... Закрытие формы и обработка того что выбрал пользователь
    End Select
Exit Sub

KeyDownERR:
    'Debug.Print Err.Description
    Err.Clear
    KeyCode = 0
End Sub

Назад ToTop
L.E. 03.12.2012
Рейтинг@Mail.ru