共用方式為


KeyPressEventArgs 類別

定義

提供 KeyPress 事件的資料。

public ref class KeyPressEventArgs : EventArgs
[System.Runtime.InteropServices.ComVisible(true)]
public class KeyPressEventArgs : EventArgs
public class KeyPressEventArgs : EventArgs
[<System.Runtime.InteropServices.ComVisible(true)>]
type KeyPressEventArgs = class
    inherit EventArgs
type KeyPressEventArgs = class
    inherit EventArgs
Public Class KeyPressEventArgs
Inherits EventArgs
繼承
KeyPressEventArgs
屬性

範例

下列範例說明如何使用 KeyPressEventArgs 來計算按下按鍵的計數,並在按下每個按鍵之後顯示結果。 Handled 然後設定為 true,讓作業系統無法進一步處理金鑰。 此範例假設其上具有 的 TextBox 表單。

public ref class myKeyPressClass
{
private:
   static long keyPressCount = 0;
   static long backspacePressed = 0;
   static long returnPressed = 0;
   static long escPressed = 0;
   TextBox^ textBox1;
   void myKeyCounter( Object^ sender, KeyPressEventArgs^ ex )
   {
      switch ( ex->KeyChar )
      {
            // Counts the backspaces.
         case '\b':
         backspacePressed = backspacePressed + 1;
         break;

            // Counts the ENTER keys.
         case '\r':
         returnPressed = returnPressed + 1;
         break;

            // Counts the ESC keys.  
         case (char)27:
         escPressed = escPressed + 1;
         break;
            
            // Counts all other keys.
         default:
         keyPressCount = keyPressCount + 1;
         break;
      }
      textBox1->Text = String::Concat( 
         backspacePressed, " backspaces pressed\r\n",
         escPressed, " escapes pressed\r\n",
         returnPressed, " returns pressed\r\n",
         keyPressCount, " other keys pressed\r\n" );
      ex->Handled = true;
   }
};
public class myKeyPressClass 
 {
     static long keyPressCount = 0 ;
     static long backspacePressed =  0;
     static long returnPressed = 0 ;
     static long escPressed = 0 ;
     private TextBox textBox1 = new TextBox();
     private void myKeyCounter(object sender, KeyPressEventArgs ex)
     {
     switch(ex.KeyChar)
     {
             // Counts the backspaces.
         case '\b':
         backspacePressed = backspacePressed + 1;
         break ;
             // Counts the ENTER keys.
         case '\r':
         returnPressed = returnPressed + 1 ;
         break ;
             // Counts the ESC keys.  
         case (char)27:
         escPressed = escPressed + 1 ;
         break ;
             // Counts all other keys.
         default:
         keyPressCount = keyPressCount + 1 ;
         break;
     }
     
     textBox1.Text = 
         backspacePressed + " backspaces pressed\r\n" + 
         escPressed + " escapes pressed\r\n" +
         returnPressed + " returns pressed\r\n" +
         keyPressCount + " other keys pressed\r\n" ;
     ex.Handled = true ;
     }
 }
Public Class myKeyPressClass
    Private Shared keyPressCount As Long = 0
    Private Shared backspacePressed As Long = 0
    Private Shared returnPressed As Long = 0
    Private Shared escPressed As Long = 0
    Private textBox1 As TextBox
    
    Private Sub myKeyCounter(sender As Object, ex As KeyPressEventArgs)
        Select Case ex.KeyChar
            ' Counts the backspaces.
            Case ControlChars.Back
                backspacePressed = backspacePressed + 1
            ' Counts the ENTER keys.
            Case ControlChars.Lf
                returnPressed = returnPressed + 1
            ' Counts the ESC keys.  
            Case Convert.ToChar(27)
                escPressed = escPressed + 1
            ' Counts all other keys.
            Case Else
                keyPressCount = keyPressCount + 1
        End Select
        
        textBox1.Text = backspacePressed & " backspaces pressed" & _
            ControlChars.Lf & ControlChars.Cr & escPressed & _
            " escapes pressed" & ControlChars.CrLf & returnPressed & _
            " returns pressed" & ControlChars.CrLf & keyPressCount & _
            " other keys pressed" & ControlChars.CrLf
        ex.Handled = True
    End Sub
End Class

您必須建立這個類別的新實例。 您也必須設定事件處理常式。 您可以在 類別的建構函式中執行此動作。

public:
   myKeyPressClass^ myKeyPressHandler;

   Form1()
   {
      myKeyPressHandler = gcnew myKeyPressClass;

      InitializeComponent();

      textBox1->KeyPress += gcnew KeyPressEventHandler(
         myKeyPressHandler, &myKeyPressClass::myKeyCounter );
   }
myKeyPressClass myKeyPressHandler = new myKeyPressClass();
public Form1()
{
     InitializeComponent();
 
     textBox1.KeyPress += new KeyPressEventHandler(myKeyPressHandler.myKeyCounter);
}
Private myKeyPressHandler As New myKeyPressClass()

Public Sub New()
    InitializeComponent()
    
    AddHandler textBox1.KeyPress, AddressOf myKeyPressHandler.myKeyCounter
End Sub

在 控制項中引發指定的事件時,會呼叫附加的方法,而且應用程式可以執行程式碼以回應事件。

備註

KeyPressEventArgs指定使用者按下按鍵時所撰寫的字元。 例如,當使用者按下 SHIFT + K 時,屬性會 KeyChar 傳回大寫 K。

當使用者 KeyPress 按下按鍵時,就會發生事件。 與 事件緊密相關的 KeyPress 兩個事件為 KeyUpKeyDown 。 當使用者按下按鍵時,事件 KeyDown 會位於每個 KeyPress 事件之前,而 KeyUp 當使用者放開按鍵時,就會發生事件。 當使用者按住索引鍵時,每次重複字元時都會發生重複 KeyDownKeyPress 事件。 發行時會產生一個 KeyUp 事件。

每個 KeyPress 事件 KeyPressEventArgs 都會傳遞 。 會 KeyEventArgs 隨著每個 KeyDownKeyUp 事件傳遞 。 會 KeyEventArgs 指定按下任何輔助按鍵 (CTRL、SHIFT 或 ALT) 與另一個按鍵。 (您也可以透過 ModifierKeys class 的 Control 屬性來取得此修飾詞資訊。)

設定 Handledtrue 以取消 KeyPress 事件。 這可讓控制項無法處理按下按鍵。

注意

某些控制項會處理 上的 KeyDown 特定按鍵筆劃。 例如, RichTextBox 在呼叫 之前 KeyPress 處理 Enter 鍵。 在這種情況下,您無法取消 KeyPress 事件,而且必須改為取消按鍵筆劃 KeyDown

如需事件模型的相關資訊,請參閱 處理和引發事件

建構函式

KeyPressEventArgs(Char)

初始化 KeyPressEventArgs 類別的新執行個體。

屬性

Handled

取得或設定數值,表示是否處理 KeyPress 事件。

KeyChar

取得或設定對應於所按下按鍵的字元。

方法

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於

另請參閱