Visio (Window.KeyDown 事件)
會在按下鍵盤按鍵時發生。
語法
運算式。KeyDown (KeyCode、 KeyButtonState、 CancelDefault)
表達 代表 Window 物件的變數。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
KeyCode | 必要 | Long | 按下的按鍵。 可能的值會在 Keycode 常數中宣告。 |
KeyButtonState | 必要 | Long | 事件的 Shift 和 Ctrl 鍵狀態。 可以是 VisKeyButtonFlags中所宣告值的組合。 例如,如果 KeyButtonState 傳回 12,則表示使用者按住 Shift 和 Ctrl。 |
CancelDefault | 必要 | 布林值 | False 表示 Microsoft Visio 應該處理從這個事件收到的訊息,否則為 True。 |
註解
如果您將 CancelDefault 設為 True,則 Visio 不會處理按下滑鼠按鍵時所接收的訊息。
不同于其他 Visio 事件, KeyDown 沒有前置詞 Query,但它仍然是查詢事件。 也就是說,您可以取消處理 KeyDown所傳送的訊息,方法是將 CancelDefault 設定為 True,或者,如果您使用 VisEventProc 方法來處理事件,則傳回 True。 如需詳細資訊,請參閱本自動化參考中有關 VisEventProc 方法以及任何查詢事件 (例如 QueryCancelSuspend 事件) 的主題。
注意事項
按下快速鍵組合,例如 Ctrl+C,並不會引發 KeyDown 事件。
如果您是使用 VBA,則本主題中的語法會描述有效處理事件的常用方式。
如果您想要建立自己的 Event 物件,請使用 Add 或 AddAdvise 方法。
若要建立可以執行附加元件的 Event 物件,可使用 Add 方法,因為它可適用於 EventList 集合。
若要建立用於接收通知的 Event 物件,則使用 AddAdvise 方法。
若要尋找您要建立之事件的事件代碼,請參閱 事件代碼。
範例
本類別模組會顯示如何定義名稱為 KeyboardListener 的接收器類別,用它來聆聽使用中視窗裡的鍵盤動作所引發的事件。 此類別會聆聽由使用中視窗中的滑鼠動作所引發的事件,並使用 WithEvents 關鍵字宣告 vsoWindow 物件變數。 本類別模組還含有 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 支援與意見反應。