Visio (的 Application.KeyPress 事件)
會在按下鍵盤按鍵時發生。
語法
運算式。KeyPress (KeyAscii、 CancelDefault)
expression 代表 Application 物件的變數。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
KeyAscii | 必要 | Long | 所按按鍵的 ASCII 值。 可以是任何 ASCII 字元碼。 |
CancelDefault | 必要 | 布林值 | False 表示 Microsoft Visio 應該處理從這個事件收到的訊息,否則為 True。 |
註解
如果您將 CancelDefault 設為 True,則 Visio 不會處理按下滑鼠按鍵時所接收的訊息。
不同于其他 Visio 事件, KeyPress 沒有前置詞 Query,但它仍然是查詢事件。 也就是說,您可以取消處理 KeyPress所傳送的訊息,方法是將 CancelDefault 設定為 True,或者,如果您使用 VisEventProc 方法來處理事件,則傳回 True。 如需詳細資訊,請參閱 VisEventProc 方法的主題,以及任何查詢事件 (例如 QueryCancelSuspend 事件) 。
注意事項
按下快速鍵組合,例如 Ctrl+C,並不會引發 KeyPress 事件。
如果您是使用 Microsoft Visual Basic 或 Visual Basic for Applications (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
儲存文件以初始化類別,然後按任意鍵觸發 KeyPress 事件。 在 [即時運算] 視窗中,處理常式會列印按下按鍵的 ASCII 碼以觸發事件。
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。