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 は、他のキーと共に任意の修飾子キー (CtrlShift、または Alt) が押されたかどうかを指定します。(この修飾子情報は、Control クラスの ModifierKeys プロパティからも取得できます。)

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

メモメモ

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

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

使用例使用例

キー押され回数KeyPressEventArgs使用してカウントし、そのキー押した結果表示する方法次の例に示します表示後は、Handledtrue設定しオペレーティング システムによるキーの処理が行われないようにします。この例は、フォーム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 プロパティ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「KeyPressEventArgs クラス」の関連用語

KeyPressEventArgs クラスのお隣キーワード
検索ランキング

   

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



KeyPressEventArgs クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS