Auf Englisch lesen

Freigeben über


KeyEventArgs Klasse

Definition

Stellt Daten für das KeyDown-Ereignis oder das KeyUp-Ereignis bereit.

C#
[System.Runtime.InteropServices.ComVisible(true)]
public class KeyEventArgs : EventArgs
C#
public class KeyEventArgs : EventArgs
Vererbung
KeyEventArgs
Attribute

Beispiele

Die folgenden Codebeispiele veranschaulichen, wie der Zustand eines Tastendrucks erkannt wird.

Beispiel 1

Im folgenden Codebeispiel wird veranschaulicht, wie Das Ereignis mit der KeyDownHelp -Klasse verwendet wird, um dem Benutzer der Anwendung Hilfe im Popupformat anzuzeigen. Im Beispiel werden die KeyEventArgs an die Ereignishandlermethode übergebenen Eigenschaften verwendet, um nach allen Variationen des Drückens der F1-Taste mit einer Modifizierertaste zu filtern. Wenn der Benutzer eine Variante von F1 drückt, die einen beliebigen Tastaturmodifizierer enthält, zeigt die Help Klasse ein Popupfenster an, ähnlich einem ToolTip, in der Nähe des Steuerelements. Wenn der Benutzer ALT+F2 drückt, wird ein anderes Hilfe-Popupfenster mit zusätzlichen Informationen angezeigt.

C#
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));
    }
}

Beispiel 2

Im folgenden Beispiel wird ermittelt, ob der Benutzer ALT+E gedrückt hat, und wenn sich der Mauszeiger über ein TreeNodebefindet, ermöglicht es dem Benutzer, diese TreeNodezu bearbeiten.

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 mouse cursor, begin editing. 
      TreeNode editNode = treeView1.GetNodeAt(
         treeView1.PointToClient(System.Windows.Forms.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;
}

Beispiel 3

Das folgende Beispiel bestimmt, ob der Benutzer einen nicht numerischen Schlüssel gedrückt hat, und wenn ja, bricht das KeyPress Ereignis mithilfe der Handled -Eigenschaft ab.

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;
            }
        }
    }
    //If shift key was pressed, it's not a number.
    if (Control.ModifierKeys == Keys.Shift) {
        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)
    {
        // Stop the character from being entered into the control since it is non-numerical.
        e.Handled = true;
    }
}

Hinweise

Ein KeyEventArgs, der die Taste angibt, die der Benutzer gedrückt hat, und ob alle Modifizierertasten (STRG, ALT und UMSCHALT) gleichzeitig gedrückt wurden, wird mit jedem KeyDown ereignis oder KeyUp übergeben.

Das KeyDown Ereignis tritt auf, wenn der Benutzer eine beliebige Taste drückt. Das KeyUp Ereignis tritt auf, wenn der Benutzer den Schlüssel freigibt. Doppelte KeyDown Ereignisse treten jedes Mal auf, wenn der Schlüssel wiederholt wird, wenn der Schlüssel gedrückt gehalten wird, aber nur ein KeyUp Ereignis wird generiert, wenn der Benutzer den Schlüssel freigibt.

Das KeyPress Ereignis tritt auch auf, wenn eine Taste gedrückt wird. Ein KeyPressEventArgs wird mit jedem KeyPress Ereignis übergeben und gibt das Zeichen an, das als Ergebnis jedes Tastendrucks zusammengesetzt wurde.

Informationen zum Ereignismodell finden Sie unter Behandeln und Auslösen von Ereignissen.

Konstruktoren

KeyEventArgs(Keys)

Initialisiert eine neue Instanz der KeyEventArgs-Klasse.

Eigenschaften

Alt

Ruft einen Wert ab, der angibt, ob ALT gedrückt wurde.

Control

Ruft einen Wert ab, der angibt, ob STRG gedrückt wurde.

Handled

Ruft einen Wert ab, der angibt, ob das Ereignis behandelt wurde, oder legt diesen fest.

KeyCode

Ruft den Tastaturcode für ein KeyDown-Ereignis oder ein KeyUp-Ereignis ab.

KeyData

Ruft die Tastendaten für ein KeyDown-Ereignis oder ein KeyUp-Ereignis ab.

KeyValue

Ruft den Tastaturwert für ein KeyDown-Ereignis oder ein KeyUp-Ereignis ab.

Modifiers

Ruft die Modifiziererflags für ein KeyDown-Ereignis oder ein KeyUp-Ereignis ab. Die Flags geben an, welche Kombination aus STRG, UMSCHALTTASTE und ALT gedrückt wurde.

Shift

Ruft einen Wert ab, der angibt, ob die UMSCHALTTASTE gedrückt wurde.

SuppressKeyPress

Ruft einen Wert ab, der angibt, ob das Key-Ereignis an das zugrunde liegende Steuerelement übergeben werden soll.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Produkt Versionen
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Weitere Informationen