KeyEventArgs クラス

KeyDown イベントまたは KeyUp イベントのデータを提供します。

この型のすべてのメンバの一覧については、KeyEventArgs メンバ を参照してください。

System.Object
   System.EventArgs
      System.Windows.Forms.KeyEventArgs

<ComVisible(True)>
Public Class KeyEventArgs   Inherits EventArgs
[C#]
[ComVisible(true)]
public class KeyEventArgs : EventArgs
[C++]
[ComVisible(true)]
public __gc class KeyEventArgs : public EventArgs
[JScript]
public
   ComVisible(true)
class KeyEventArgs extends EventArgs

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

KeyDown イベントまたは KeyUp イベントに伴い、ユーザーが押したキーおよび同時に任意の修飾子キー (Ctrl、Alt、および Shift) が押されたかどうかを指定する KeyEventArgs が渡されます。

KeyDown イベントは、ユーザーが任意のキーを押すと発生します。 KeyUp イベントは、ユーザーが押していたキーを離すと発生します。キーを押し続けている間は、キーが繰り返されるたびに KeyDown イベントが複製され、ユーザーがキーを離すと KeyUp イベントが 1 つだけ生成されます。

キーが押されている間も KeyPress イベントが発生します。各 KeyPress イベントに伴い KeyPressEventArgs が渡され、各キーを押した結果作成される文字を指定します。

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

使用例

 
' This example demonstrates how to use the KeyDown event with the Help class to display
' pop-up style help to the user of the application. The example filters for all variations
' of pressing the F1 key with a modifier key by using the KeyEventArgs properties passed
' to the event handling method. 
' When the user presses any variation of F1 that includes any keyboard modifier, the Help
' class displays a pop-up window, similar to a ToolTip, near the control. If the user presses 
' ALT + F2, a different Help pop-up is displayed with additional information. This example assumes
' that a TextBox control, named textBox1, has been added to the form and its KeyDown
' event has been contected to this event handling method.
Private Sub textBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles textBox1.KeyDown
    ' Determine whether the key entered is the F1 key. If it is, display Help.
    If e.KeyCode = Keys.F1 AndAlso (e.Alt OrElse e.Control OrElse e.Shift) Then
        ' Display a pop-up Help topic to assist the user.
        Help.ShowPopup(textBox1, "Enter your name.", New Point(textBox1.Bottom, textBox1.Right))
    ElseIf e.KeyCode = Keys.F2 AndAlso e.Modifiers = Keys.Alt Then
        ' Display a pop-up Help topic to provide additional assistance to the user.
        Help.ShowPopup(textBox1, "Enter your first name followed by your last name. Middle name is optional.", _
             New Point(textBox1.Top, Me.textBox1.Left))
    End If
End Sub 'textBox1_KeyDown

[C#] 
// This example demonstrates how to use the KeyDown event with the Help class to display
// pop-up style help to the user of the application. The example filters for all variations
// of pressing the F1 key with a modifier key by using the KeyEventArgs properties passed
// to the event handling method.
// When the user presses any variation of F1 that includes any keyboard modifier, the Help
// class displays a pop-up window, similar to a ToolTip, near the control. If the user presses
// ALT + F2, a different Help pop-up is displayed with additional information. This example assumes
// that a tTextBox control, named textBox1, has been added to the form and its KeyDown
// event has been contected to this event handling method.
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    // Determine whether the key entered is the F1 key. If it is, display Help.
    if(e.KeyCode == Keys.F1 && (e.Alt || e.Control || e.Shift))
    {
        // Display a pop-up Help topic to assist the user.
        Help.ShowPopup(textBox1, "Enter your name.", new Point(textBox1.Bottom, textBox1.Right));
    }
    else if(e.KeyCode == Keys.F2 && e.Modifiers == Keys.Alt)
    {
        // Display a pop-up Help topic to provide additional assistance to the user.
        Help.ShowPopup(textBox1, "Enter your first name followed by your last name. Middle name is optional.",
            new Point(textBox1.Top, this.textBox1.Left));
    }
}

[C++] 
// This example demonstrates how to use the KeyDown event with the Help class to display
// pop-up style help to the user of the application. The example filters for all variations
// of pressing the F1 key with a modifier key by using the KeyEventArgs properties passed
// to the event handling method.
// When the user presses any variation of F1 that includes any keyboard modifier, the Help
// class displays a pop-up window, similar to a ToolTip, near the control. If the user presses
// ALT + F2, a different Help pop-up is displayed with additional information. This example assumes
// that a tTextBox control, named textBox1, has been added to the form and its KeyDown
// event has been contected to this event handling method.
private:
void textBox1_KeyDown(Object* /*sender*/, System::Windows::Forms::KeyEventArgs* e)
{
   // Determine whether the key entered is the F1 key. If it is, display Help.
   if(e->KeyCode == Keys::F1 && (e->Alt || e->Control || e->Shift))
   {
      // Display a pop-up Help topic to assist the user.
      Help::ShowPopup(textBox1, S"Enter your name.", Point(textBox1->Bottom, textBox1->Right));
   }
   else if(e->KeyCode == Keys::F2 && e->Modifiers == Keys::Alt)
   {
      // Display a pop-up Help topic to provide additional assistance to the user.
      Help::ShowPopup(textBox1, S"Enter your first name followed by your last name. Middle name is optional.",
         Point(textBox1->Top, this->textBox1->Left));
   }
}

[Visual Basic] 
Private Sub treeView1_KeyDown(sender As Object, _
  e As KeyEventArgs) Handles treeView1.KeyDown
   ' If the 'Alt' and 'E' keys are pressed,
   ' allow the user to edit the TreeNode label. 
   If e.Alt And e.KeyCode = Keys.E Then
      treeView1.LabelEdit = True
      ' If there is a TreeNode under the mose cursor, begin editing. 
      Dim editNode As TreeNode = treeView1.GetNodeAt( _
        treeView1.PointToClient(Control.MousePosition))
      If Not (editNode Is Nothing) Then
         editNode.BeginEdit()
      End If
   End If
End Sub

Private Sub treeView1_AfterLabelEdit(sender As Object, _
  e As NodeLabelEditEventArgs) Handles treeView1.AfterLabelEdit
   ' Disable the ability to edit the TreeNode labels.
   treeView1.LabelEdit = False
End Sub

[C#] 
private void treeView1_KeyDown(object sender, KeyEventArgs e)
{
   /* If the 'Alt' and 'E' keys are pressed,
      * allow the user to edit the TreeNode label. */
   if(e.Alt && e.KeyCode == Keys.E)
         
   {
      treeView1.LabelEdit = true;
      // If there is a TreeNode under the mose cursor, begin editing. 
      TreeNode editNode = treeView1.GetNodeAt(
         treeView1.PointToClient(Control.MousePosition));
      if(editNode != null)
      { 
         editNode.BeginEdit();
      }
   }
}

private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
{
   // Disable the ability to edit the TreeNode labels.
   treeView1.LabelEdit = false;
}

[C++] 
private:
    void treeView1_KeyDown(Object* /*sender*/, KeyEventArgs* e) {
        /* If the 'Alt' and 'E' keys are pressed,
         * allow the user to edit the TreeNode label. */
        if (e->Alt && e->KeyCode == Keys::E) {
            treeView1->LabelEdit = true;
            // If there is a TreeNode under the mose cursor, begin editing.
            TreeNode* editNode = treeView1->GetNodeAt(
                treeView1->PointToClient(Control::MousePosition));
            if (editNode != 0) {
                editNode->BeginEdit();
            }
        }
    }

    void treeView1_AfterLabelEdit(Object* /*sender*/, NodeLabelEditEventArgs* /*e*/) {
        // Disable the ability to edit the TreeNode labels.
        treeView1->LabelEdit = false;
    }

[Visual Basic] 
' Boolean flag used to determine when a character other than a number is entered.
Private nonNumberEntered As Boolean = False
   
   
' Handle the KeyDown event to determine the type of character entered into the control.
Private Sub textBox1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) _
     Handles textBox1.KeyDown
    ' Initialize the flag to false.
    nonNumberEntered = False
  
    ' Determine whether the keystroke is a number from the top of the keyboard.
    If e.KeyCode < Keys.D0 OrElse e.KeyCode > Keys.D9 Then
        ' Determine whether the keystroke is a number from the keypad.
        If e.KeyCode < Keys.NumPad0 OrElse e.KeyCode > Keys.NumPad9 Then
            ' Determine whether the keystroke is a backspace.
            If e.KeyCode <> Keys.Back Then
                ' A non-numerical keystroke was pressed. 
                ' Set the flag to true and evaluate in KeyPress event.
                nonNumberEntered = True
            End If
        End If
    End If
End Sub 'textBox1_KeyDown
   
   
' This event occurs after the KeyDown event and can be used 
' to prevent characters from entering the control.
Private Sub textBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) _
    Handles textBox1.KeyPress
    ' Check for the flag being set in the KeyDown event.
    If nonNumberEntered = True Then
        ' Stop the character from being entered into the control since it is non-numerical.
        e.Handled = True
    End If
End Sub 'textBox1_KeyPress
End Class 'Form1 

[C#] 
// Boolean flag used to determine when a character other than a number is entered.
private bool nonNumberEntered = false;

// Handle the KeyDown event to determine the type of character entered into the control.
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    // Initialize the flag to false.
    nonNumberEntered = false;

    // Determine whether the keystroke is a number from the top of the keyboard.
    if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
    {
        // Determine whether the keystroke is a number from the keypad.
        if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
        {
            // Determine whether the keystroke is a backspace.
            if(e.KeyCode != Keys.Back)
            {
                // A non-numerical keystroke was pressed.
                // Set the flag to true and evaluate in KeyPress event.
                nonNumberEntered = true;
            }
        }
    }
}

// This event occurs after the KeyDown event and can be used to prevent
// characters from entering the control.
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    // Check for the flag being set in the KeyDown event.
    if (nonNumberEntered == true)
    {
        // Stop the character from being entered into the control since it is non-numerical.
        e.Handled = true;
    }
}


[C++] 
// Boolean flag used to determine when a character other than a number is entered.
private:
bool nonNumberEntered;

// Handle the KeyDown event to determine the type of character entered into the control.
void textBox1_KeyDown(Object* /*sender*/, System::Windows::Forms::KeyEventArgs* e)
{
   // Initialize the flag to false.
   nonNumberEntered = false;

   // Determine whether the keystroke is a number from the top of the keyboard.
   if (e->KeyCode < Keys::D0 || e->KeyCode > Keys::D9)
   {
      // Determine whether the keystroke is a number from the keypad.
      if (e->KeyCode < Keys::NumPad0 || e->KeyCode > Keys::NumPad9)
      {
         // Determine whether the keystroke is a backspace.
         if(e->KeyCode != Keys::Back)
         {
            // A non-numerical keystroke was pressed.
            // Set the flag to true and evaluate in KeyPress event.
            nonNumberEntered = true;
         }
      }
   }
}

// This event occurs after the KeyDown event and can be used to prevent
// characters from entering the control.
void textBox1_KeyPress(Object* /*sender*/, System::Windows::Forms::KeyPressEventArgs* e)
{
   // Check for the flag being set in the KeyDown event.
   if (nonNumberEntered == true)
   {
      // Stop the character from being entered into the control since it is non-numerical.
      e->Handled = true;
   }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Windows.Forms

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: System.Windows.Forms (System.Windows.Forms.dll 内)

参照

KeyEventArgs メンバ | System.Windows.Forms 名前空間 | OnKeyDown | KeyDown | OnKeyUp | KeyUp | KeyPressEventArgs | OnKeyPress | KeyPress