KeyPressEventArgs クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 使用してキーを押しながらカウントし、各キーを押した後に結果を表示する方法を示します。 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する 2 つのイベントは と KeyDownですKeyUp。 イベントは KeyDown 、ユーザーがキーを押すと各 KeyPress イベントの前に置き、ユーザーがキーを KeyUp 離すとイベントが発生します。 ユーザーがキーを押したままにすると、文字が繰り返されるたびに重複 KeyDown イベントと KeyPress イベントが発生します。 リリース時に 1 つの KeyUp イベントが生成されます。
各 KeyPress イベントでは、 KeyPressEventArgs が渡されます。 KeyEventArgsは、 イベントと KeyUp イベントごとにKeyDown渡されます。 は KeyEventArgs 、修飾キー (Ctrl、Shift、または Alt) を別のキーと共に押したかどうかを指定します。 (この修飾子情報は、 クラスの Control プロパティをModifierKeys使用して取得することもできます)。
イベントを取り消すには、 を にtrue
設定Handledします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) |
適用対象
こちらもご覧ください
.NET