Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Control.KeyDown-Ereignis

 

Veröffentlicht: Oktober 2016

Wird ausgelöst, wenn eine Taste gedrückt wird, während das Steuerelement den Fokus hat.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public event KeyEventHandler KeyDown

Wichtige Ereignisse treten in der folgenden Reihenfolge:

  1. KeyDown

  2. KeyPress

  3. KeyUp

Um Tastaturereignisse nur auf Formularebene zu behandeln und andere Steuerelemente Tastaturereignisse empfangen, legen Sie die KeyPressEventArgs.Handled Eigenschaft in Ihrem Formulars KeyPress Ereignisbehandlungsmethode zu true. Bestimmte Tasten, z. B. TAB, RETURN, ESC und Pfeil werden von Steuerelementen automatisch behandelt. Um diese Tasten Auslösen der KeyDown Ereignis müssen Sie überschreiben die IsInputKey -Methode in jedem Steuerelement auf dem Formular. Der Code zum Überschreiben von der IsInputKey muss bestimmen, ob eine der besonderen Tasten gedrückt wurde, und gibt den Wert zurück true. Nicht überschrieben werden die IsInputKey -Methode, die Sie behandeln die PreviewKeyDown und die IsInputKey-Eigenschaft true. Ein Codebeispiel finden Sie unter der PreviewKeyDown Ereignis.

Weitere Informationen zur Behandlung von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.

Im folgenden Codebeispiel wird die KeyDown Ereignis, das den Typ des im Steuerelement eingegebenen Zeichens zu bestimmen.

// 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 == true)
    {
        // Stop the character from being entered into the control since it is non-numerical.
        e.Handled = true;
    }
}

.NET Framework
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: