Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возникает при нажатии клавиши на клавиатуре.
Синтаксис
выражение. KeyDown (KeyCode, KeyButtonState, CancelDefault)
выражение: переменная, представляющая объект Application.
Параметры
| Имя | Обязательный или необязательный | Тип данных | Описание |
|---|---|---|---|
| KeyCode | Обязательный | Long | Нажатая клавиша. Возможные значения объявлены в константах Keycode. |
| KeyButtonState | Обязательный | Long | Состояние клавиш SHIFT и CTRL для события. Может представлять собой комбинацию значений, объявленных в функции VisKeyButtonFlags. Например, если функция KeyButtonState возвращает значение 12, это означает, что пользователь удерживал нажатыми клавиши SHIFT и CTRL. |
| CancelDefault | Обязательный | Boolean | Значение False , если Microsoft Visio должен обработать сообщение, полученное из этого события; в противном случае — True. |
Примечания
Если для параметра CancelDefault задано значение True, Visio не обрабатывает сообщение, полученное при нажатии кнопки мыши.
В отличие от некоторых других событий Visio, KeyDown не имеет префикса Query, но все равно является событием запроса. Это означает, что вы можете отменить обработку сообщения, отправленного KeyDown, либо установив для CancelDefault значение True, либо, если для обработки события используется метод VisEventProc , вернув значение True. Дополнительные сведения см. в разделах, посвященных методу VisEventProc и любым событиям запроса (например, событию QueryCancelSuspend ).
Примечание.
Нажатие сочетания клавиш, например CTRL+C, не вызывает события KeyDown .
При использовании VBA синтаксис в этой статье дает представление об общем и эффективном способе обработки событий.
Если вы хотите создать свои собственные объекты Event , используйте метод Add или AddAdvice .
Чтобы создать объект Event , который запускает надстройку, используйте метод Add , применяемый к коллекции EventList .
Чтобы создать объект события , получающий уведомление, используйте метод AddAdvice .
Чтобы найти код события для события, которое вы хотите создать, см. Коды событий.
Пример
В этом модуле класса показано, как определить класс синхронизации с именем KeyboardListener , который прослушивает события, вызванные действиями клавиатуры в активном окне. Он объявляет объектную переменную vsoWindow с помощью ключевого слова WithEvents. Модуль класса также содержит обработчики событий KeyDown, KeyPress и KeyUp .
Для выполнения этого примера вставьте новый модуль класса в проект VBA, назовите его KeyboardListener и вставьте в модуль следующий код.
Dim WithEvents vsoWindow As Visio.Window
Private Sub Class_Initialize()
Set vsoWindow = ActiveWindow
End Sub
Private Sub Class_Terminate()
Set vsoWindow = Nothing
End Sub
Private Sub vsoWindow_KeyDown(ByVal KeyCode As Long, ByVal KeyButtonState As Long, CancelDefault As Boolean)
Debug.Print "KeyCode is "; KeyCode
Debug.Print "KeyButtonState is" ; KeyButtonState
End Sub
Private Sub vsoWindow_KeyPress(ByVal KeyAscii As Long, CancelDefault As Boolean)
Debug.Print "KeyAscii value is "; KeyAscii
End Sub
Private Sub vsoWindow_KeyUp(ByVal KeyCode As Long, ByVal KeyButtonState As Long, CancelDefault As Boolean)
Debug.Print "KeyCode is "; KeyCode
Debug.Print "KeyButtonState is" ; KeyButtonState
End Sub
Затем вставьте следующий код в проект ThisDocument .
Dim myKeyboardListener As KeyboardListener
Private Sub Document_DocumentSaved(ByVal doc As IVDocument)
Set myKeyboardListener = New KeyboardListener
End Sub
Private Sub Document_BeforeDocumentClose(ByVal doc As IVDocument)
Set myKeyboardListener = Nothing
End Sub
Сохраните документ, чтобы инициализировать класс, а затем нажмите любую клавишу, чтобы запустить событие KeyDown . В окне непосредственного доступа обработчик выводит код клавиши, которая была нажата для запуска события, и состояние клавиш Shift и Ctrl в момент срабатывания события.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.