KeyDown、KeyUp 事件
在使用者按下並放開按鍵時依序發生。 KeyDown 會在使用者按下按鍵時發生。 KeyUp 會在使用者釋出金鑰時發生。
語法
Private Sub物件 _KeyDown ( ByValKeyCodeAs MSForms.ReturnInteger, ByValShiftAs fmShiftState)
Private Sub物件 _KeyUp ( ByValKeyCodeAs MSForms.ReturnInteger, ByValShiftAs fmShiftState)
KeyDown和KeyUp事件語法具有下列部分:
部分 | 描述 |
---|---|
物件 | 必要。 有效的物件名稱。 |
KeyCode | 此為必要動作。 整數,表示已按下或放開之金鑰的金鑰代碼。 |
Shift | 此為必要動作。 SHIFT、CTRL 和 ALT 的狀態。 |
設定
Shift的設定如下:
常數 | 值 | 描述 |
---|---|---|
fmShiftMask | 1 | 已按下 SHIFT。 |
fmCtrlMask | 2 | 按下 CTRL。 |
fmAltMask | 4 | 已按下 ALT。 |
註解
KeyDown 事件會在使用者按下執行中表單上的按鍵,而該表單或其上的控制項具有 焦點時發生。 KeyDown 和 KeyPress 事件會重複替代,直到使用者釋放金鑰為止,此時會發生 KeyUp 事件。 具有焦點的表單或控制項會接收所有按鍵。 當表單中含有控制項,或是表單中所有的可見控制項尚未全部失效時,該表單便無法取得焦點。
如果您使用宏中的 SendKeys 巨集指令或 Visual Basic 中的 SendKeys 語句 ,將按鍵傳送至表單或控制項,也會發生這些事件。
KeyDown 和 KeyUp 事件通常用來辨識或區別:
擴充字元按鍵,例如功能鍵。
流覽鍵,例如 HOME、END、PAGEUP、PAGEDOWN、UP ARROW、向下鍵、向右鍵、向左鍵和索引標籤。
SHIFT、CTRL 或 ALT) (按鍵和標準鍵盤修飾詞的組合。
數字鍵台及鍵盤數字鍵。
在下列情況下,不會發生 KeyDown 和 KeyUp 事件:
使用者在具有 [ 預設 ] 屬性設為 True之命令按鈕的表單上按 Enter。
使用者在表單上按下 Esc,其命令按鈕的 Cancel 屬性設定為 True。
當您按下或傳送 ANSI 鍵,就會發生 KeyDown 和 KeyPress 事件。 KeyUp 事件發生在任何事件之後按下或傳送按鍵而造成的控制項。 如果按鍵使焦點從一個控制項移到另一個控制項, KeyDown 事件發生的第一個控制項、 KeyPress 及 KeyUp 事件發生的第二個控制項時。
鍵盤相關事件的順序如下:
- KeyDown
- KeyPress
- KeyUp
注意事項
KeyDown 和 KeyUp 事件只適用于表單上的表單和控制項。 若要解譯 ANSI 字元,或找出與按下按鍵對應的 ANSI 字元,請使用 KeyPress 事件。
另請參閱
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。