KeyPressEventArgsとは? わかりやすく解説

KeyPressEventArgs クラス

KeyPress イベントのデータを提供します。

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

<ComVisibleAttribute(True)> _
Public Class KeyPressEventArgs
    Inherits EventArgs
Dim instance As KeyPressEventArgs
[ComVisibleAttribute(true)] 
public class KeyPressEventArgs : EventArgs
[ComVisibleAttribute(true)] 
public ref class KeyPressEventArgs : public
 EventArgs
/** @attribute ComVisibleAttribute(true) */ 
public class KeyPressEventArgs extends EventArgs
ComVisibleAttribute(true) 
public class KeyPressEventArgs extends
 EventArgs
解説解説

KeyPressEventArgs は、ユーザーがキーを押すと作成される文字を指定します。たとえば、ユーザーが Shift キーを押しながら K キーを押した場合、KeyChar プロパティは大文字の K を返します。

ユーザーがキーを押すと KeyPress イベントが発生します。KeyPress イベントと密接に関連する 2 つのイベントは、KeyUp イベントと KeyDown イベントです。ユーザーがキーを押すと KeyDown イベントが各 KeyPress イベントに先行して発生し、ユーザーがキーを離すと KeyUp イベントが発生します。ユーザーがキーを押し続けると、文字が繰り返されるたびに複製された KeyDown イベントと KeyPress イベントが発生します。キーを離すと KeyUp イベントが 1 つ発生します。

各 KeyPress イベントに伴い KeyPressEventArgs が渡されます。KeyDown イベントと KeyUp イベントにおいて、それぞれ KeyEventArgs が渡されます。KeyEventArgs は、他のキーと共に任意の修飾子キー (Ctrl、Shift、または Alt) が押されたかどうかを指定します。(この修飾子情報は、Control クラスの ModifierKeys プロパティからも取得できます。)

Handled を true に設定して KeyPress イベントをキャンセルします。この結果、コントロールはキーを押す処理を行いません。

メモメモ

コントロールによっては、KeyDown で特定のキーストロークを処理するものがあります。たとえば、RichTextBox は、KeyPress が呼び出される前に Enter キーを処理します。このような場合、KeyPress イベントはキャンセルできず、代わりに KeyDown からキーストロークをキャンセルする必要があります。

イベント モデルの詳細については、「イベントとデリゲート」を参照してください。

使用例使用例

キーが押された回数を 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
{
    private static long keyPressCount = 0;
    private static long backspacePressed =
 0;
    private static long returnPressed = 0;
    private static long escPressed = 0;
    private TextBox textBox1 =  new TextBox();
   
    private void MyKeyCounter(Object sender,
 KeyPressEventArgs ex)
    {
        switch(ex.get_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;
            default : 
                // Counts all other keys.
                keyPressCount = keyPressCount + 1;
                break;
        }
      
        textBox1.set_Text(backspacePressed + " backspaces pressed\r\n"
            + escPressed + " escapes pressed\r\n" + returnPressed
            + " returns pressed\r\n"+keyPressCount + " other keys
 pressed\r\n");
        ex.set_Handled(true);
    } //MyKeyCounter
} //MyKeyPressClass

このクラスの新しいインスタンスを作成する必要があります。また、イベント ハンドラも設定する必要があります。イベント ハンドラは、クラスのコンストラクタで設定できます。

public:
   myKeyPressClass^ myKeyPressHandler;

   Form1()
   {
      myKeyPressHandler = gcnew myKeyPressClass;

      InitializeComponent();

      textBox1->KeyPress += gcnew KeyPressEventHandler(
         myKeyPressHandler, &myKeyPressClass::myKeyCounter );
   }
private MyKeyPressClass myKeyPressHandler = new
 MyKeyPressClass();
public Form1()
{
    InitializeComponent();
    textBox1.add_KeyPress(new KeyPressEventHandler(myKeyPressHandler.
        MyKeyCounter));
} //Form1

指定されたイベントがコントロール内で発生した場合、結び付けられたメソッドが呼び出され、アプリケーションがイベントに応答するコードを実行できます。

継承階層継承階層
System.Object
   System.EventArgs
    System.Windows.Forms.KeyPressEventArgs
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
KeyPressEventArgs メンバ
System.Windows.Forms 名前空間
OnKeyPress
Control.KeyPress イベント
KeyEventArgs クラス
Control.KeyDown イベント
Control.KeyUp イベント
Control.ModifierKeys プロパティ

KeyPressEventArgs コンストラクタ

KeyPressEventArgs クラスの新しいインスタンスを初期化します。

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

Public Sub New ( _
    keyChar As Char _
)
Dim keyChar As Char

Dim instance As New KeyPressEventArgs(keyChar)
public KeyPressEventArgs (
    char keyChar
)
public:
KeyPressEventArgs (
    wchar_t keyChar
)
public KeyPressEventArgs (
    char keyChar
)
public function KeyPressEventArgs (
    keyChar : char
)

パラメータ

keyChar

ユーザーの押したキーに対応する ASCII 文字。

解説解説
使用例使用例
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

KeyPressEventArgs プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ KeyChar 押されたキーに対応する文字を取得または設定します。
参照参照

関連項目

KeyPressEventArgs クラス
System.Windows.Forms 名前空間
OnKeyPress
Control.KeyPress イベント
KeyEventArgs クラス
Control.KeyDown イベント
Control.KeyUp イベント
Control.ModifierKeys プロパティ

KeyPressEventArgs メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

KeyPressEventArgs クラス
System.Windows.Forms 名前空間
OnKeyPress
Control.KeyPress イベント
KeyEventArgs クラス
Control.KeyDown イベント
Control.KeyUp イベント
Control.ModifierKeys プロパティ

KeyPressEventArgs メンバ

KeyPress イベントのデータを提供します。

KeyPressEventArgs データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド KeyPressEventArgs KeyPressEventArgs クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ KeyChar 押されたキーに対応する文字を取得または設定します。
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

KeyPressEventArgs クラス
System.Windows.Forms 名前空間
OnKeyPress
Control.KeyPress イベント
KeyEventArgs クラス
Control.KeyDown イベント
Control.KeyUp イベント
Control.ModifierKeys プロパティ



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「KeyPressEventArgs」の関連用語

KeyPressEventArgsのお隣キーワード

   

英語⇒日本語
日本語⇒英語
   



KeyPressEventArgsのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS