MyTetra Share
Делитесь знаниями!
Список (ListBox) - Циклическое перемещение по списку и обработка нажатий клавиш.
Время создания: 16.03.2019 23:43
Раздел: !Закладки - VBA - Access - msa.polarcom.ru - 07 Элементы Управления
Запись: xintrea/mytetra_db_adgaver_new/master/base/1531973238yieyyijv0m/text.html на raw.githubusercontent.com

Список (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




Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования