KeyPressEventArgs クラス


KeyPress イベントのデータを提供します。Provides data for the KeyPress event.

public ref class KeyPressEventArgs : EventArgs
public class KeyPressEventArgs : EventArgs
type KeyPressEventArgs = class
    inherit EventArgs
Public Class KeyPressEventArgs
Inherits EventArgs

次の例では、KeyPressEventArgs を使用してキーをカウントし、キーを押すたびに結果を表示する方法を示します。The following example illustrates using the KeyPressEventArgs to count keys as they are pressed and to display the results after each key press. 次に、Handled を true に設定して、オペレーティングシステムがキーをさらに処理しないようにします。Handled is then set to true to keep the operating system from further processing the key. この例では、フォームに TextBox が配置されていることを前提としています。The example assumes a form with a TextBox placed on it.

public ref class myKeyPressClass
   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;

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

            // Counts the ESC keys.  
         case (char)27:
         escPressed = escPressed + 1;
            // Counts all other keys.
         keyPressCount = keyPressCount + 1;
      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)
             // 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.
         keyPressCount = keyPressCount + 1 ;
     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

このクラスの新しいインスタンスを作成する必要があります。You must create a new instance of this class. また、イベントハンドラーも設定する必要があります。You must also set the event handler. これは、クラスのコンストラクターで行うことができます。You can do this in the constructor for your class.

   myKeyPressClass^ myKeyPressHandler;

      myKeyPressHandler = gcnew myKeyPressClass;


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

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

コントロールで指定されたイベントが発生すると、添付されたメソッドが呼び出され、アプリケーションはイベントに応答してコードを実行できます。When the specified event is raised in the control, the attached method is called and the application can execute code in response to the event.


ユーザーがキーを押したときに構成される文字を指定する KeyPressEventArgsA KeyPressEventArgs specifies the character that is composed when the user presses a key. たとえば、ユーザーが SHIFT + K キーを押した場合、KeyChar プロパティは大文字の K を返します。For example, when the user presses SHIFT + K, the KeyChar property returns an uppercase K.

KeyPress イベントは、ユーザーがキーを押したときに発生します。A KeyPress event occurs when the user presses a key. KeyPress イベントに密接に関連する2つのイベントが KeyUpKeyDownます。Two events that are closely related to the KeyPress event are KeyUp and KeyDown. KeyDown イベントは、ユーザーがキーを押したときに各 KeyPress イベントの前に発生し、ユーザーがキーを離したときに KeyUp イベントが発生します。The KeyDown event precedes each KeyPress event when the user presses a key, and a KeyUp event occurs when the user releases a key. ユーザーがキーを押したときに、重複する KeyDownKeyPress イベントは、文字が繰り返されるたびに発生します。When the user holds down a key, duplicate KeyDown and KeyPress events occur each time the character repeats. リリース時に1つの KeyUp イベントが生成されます。One KeyUp event is generated upon release.

KeyPress イベントには、KeyPressEventArgs が渡されます。With each KeyPress event, a KeyPressEventArgs is passed. KeyDown および KeyUp イベントと共に KeyEventArgs が渡されます。A KeyEventArgs is passed with each KeyDown and KeyUp event. 修飾子キー (CTRL、SHIFT、または ALT) を別のキーと共に押したかどうかを指定 KeyEventArgsA KeyEventArgs specifies whether any modifier keys (CTRL, SHIFT, or ALT) were pressed along with another key. (この修飾子情報は、Control クラスの ModifierKeys プロパティを使用して取得することもできます)。(This modifier information can also be obtained through the ModifierKeys property of the Control class.)

KeyPress イベントを取り消すには、Handledtrue に設定します。Set Handled to true to cancel the KeyPress event. これにより、コントロールはキー押下を処理し続けます。This keeps the control from processing the key press.


一部のコントロールでは、KeyDownで特定のキーストロークを処理します。Some controls will process certain key strokes on KeyDown. たとえば、RichTextBox は、KeyPress が呼び出される前に Enter キーを処理します。For example, RichTextBox processes the Enter key before KeyPress is called. このような場合は、KeyPress イベントをキャンセルすることはできません。代わりに KeyDown からキーストロークを取り消す必要があります。In such cases, you cannot cancel the KeyPress event, and must cancel the key stroke from KeyDown instead.

イベントモデルの詳細については、「イベントの処理と発生」を参照してください。For information about the event model, see Handling and Raising Events.



KeyPressEventArgs クラスの新しいインスタンスを初期化します。Initializes a new instance of the KeyPressEventArgs class.



KeyPress イベントが処理されたかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the KeyPress event was handled.


押されたキーに対応する文字を取得または設定します。Gets or sets the character corresponding to the key pressed.



指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)