KeyPressEventArgs クラス
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)


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.EventArgs
System.Windows.Forms.KeyPressEventArgs


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


KeyPressEventArgs メンバ
System.Windows.Forms 名前空間
OnKeyPress
Control.KeyPress イベント
KeyEventArgs クラス
Control.KeyDown イベント
Control.KeyUp イベント
Control.ModifierKeys プロパティ
KeyPressEventArgs コンストラクタ
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)




Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


KeyPressEventArgs プロパティ


関連項目
KeyPressEventArgs クラスSystem.Windows.Forms 名前空間
OnKeyPress
Control.KeyPress イベント
KeyEventArgs クラス
Control.KeyDown イベント
Control.KeyUp イベント
Control.ModifierKeys プロパティ
KeyPressEventArgs メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

関連項目
KeyPressEventArgs クラスSystem.Windows.Forms 名前空間
OnKeyPress
Control.KeyPress イベント
KeyEventArgs クラス
Control.KeyDown イベント
Control.KeyUp イベント
Control.ModifierKeys プロパティ
KeyPressEventArgs メンバ
KeyPressEventArgs データ型で公開されるメンバを以下の表に示します。



名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

関連項目
KeyPressEventArgs クラスSystem.Windows.Forms 名前空間
OnKeyPress
Control.KeyPress イベント
KeyEventArgs クラス
Control.KeyDown イベント
Control.KeyUp イベント
Control.ModifierKeys プロパティ
- KeyPressEventArgsのページへのリンク