ToggleButton.KeyPress 事件 (Access)

KeyPress 事件發生於使用者按下及放開按鍵或組合鍵對應的 ANSI 程式碼表單或控制項擁有焦點時。 如果您使用 SendKeys 巨集指令的巨集或 Visual Basic 中的 SendKeys 陳述式傳送至表單或控制項 ANSI 按鍵,也會發生此事件。

語法

運算式KeyPress (KeyAscii)

表達 代表 ToggleButton 物件的變數。

參數

名稱 必要/選用 資料類型 描述
KeyAscii 必要 Integer 會傳回數字 ANSI 按鍵代碼。 KeyAscii 引數使用傳址方式傳遞;變更引數會傳送不同的字元至物件。 將 KeyAscii 引數設為 0 取消按鍵動作,讓物件不會識別按鍵已經按下。

註解

若要發生此事件時執行巨集或事件程序,將 OnKeyPress 屬性設定為巨集名稱或 [事件程序]。

取得焦點的物件會接收所有的按鍵動作。 當表單中含有控制項,或是表單中所有的可見控制項尚未全部失效時,該表單便無法取得焦點。

表單也會接收所有的鍵盤事件,即使這些發生控制項,如果您將表單的 KeyPreview 屬性設定為 [是]。 此屬性設定值與所有的鍵盤事件發生前的表單,然後控制項具有焦點。 您可以在表單中,不論其控制項有焦點時按下特定鍵回應。 例如,您可能想要按鍵組合 Ctrl+X 一律在表單上執行相同的動作。

如果您按住 ANSI 鍵, KeyDownKeyPress 事件會 (KeyDownKeyPressKeyDownKeyPress等) 重複替代,直到您放開金鑰,然後發生 KeyUp 事件為止。

KeyPress事件可能涉及任何可列印的鍵盤字元、Ctrl 鍵與標準字母或特殊字元中的字元結合,以及 Enter 或 Backspace 鍵。 使用 KeyDownKeyUp 事件程序來處理 KeyPress 事件無法辨識的任何按鍵,例如函式按鍵、流覽鍵,以及這些與鍵盤修飾詞的任何組合, (Alt、Shift 或 Ctrl 鍵) 。 不同於 KeyDownKeyUp 事件 KeyPress 事件不會指出鍵盤 ; 實體狀態而是表示會對應至按下的按鍵或組合鍵的 ANSI 字元。

KeyPress 解譯的大寫和小寫每一字元為不同的按鍵代碼,因此為兩個不同的字元。

注意事項

Backspace 鍵是 ANSI 字元集的一部分,但 Delete 鍵不是。 如果您使用 Backspace 鍵刪除控制項中的字元,則會造成 KeyPress 事件;如果您使用 Delete 金鑰,則不會。

當您按下或傳送 ANSI 鍵,就會發生 KeyDownKeyPress 事件。 KeyUp 事件發生在任何事件之後按下或傳送按鍵而造成的控制項。 如果按鍵使焦點從一個控制項移到另一個控制項, KeyDown 事件發生的第一個控制項、 KeyPressKeyUp 事件發生的第二個控制項時。

例如,當您移到一筆新的記錄並於該記錄的第一個控制項中輸入字元時,則發生下列事件:

  • 目前 (適用於新的記錄)
  • 輸入 (適用於新記錄中的第一個控制項)
  • GotFocus (適用於控制項)
  • KeyDown (適用於控制項)
  • KeyPress (適用於控制項)
  • BeforeInsert (適用於表單中的新記錄)
  • 變更 (適用於如果是文字方塊或下拉式方塊的控制項)
  • KeyUp (適用於控制項)

範例

The following example converts text entered in a text box to uppercase as the text is typed in, one character at a time.

若要嘗試此範例,請將下列事件程序新增至包含名為 ShipRegion之文字方塊的表單。

Private Sub ShipRegion_KeyPress(KeyAscii As Integer) 
 Dim strCharacter As String 
 
 ' Convert ANSI value to character string. 
 strCharacter = Chr(KeyAscii) 
 ' Convert character to upper case, then to ANSI value. 
 KeyAscii = Asc(UCase(strCharacter)) 
End Sub

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應