Freigeben über


Behandeln von Benutzereingaben

In diesem Thema werden die primären Tastatur- und Mausereignisse beschrieben, die in System.Windows.Forms.Control bereitgestellt werden. Beim Behandeln eines Ereignisses sollten Autoren von Steuerelementen die geschützte OnEventName-Methode überschreiben, anstatt einen Delegaten an das Ereignis anzufügen. Eine Übersicht über Ereignisse finden Sie unter Auslösen von Ereignissen aus einer Komponente.

Tipp

Wenn einem Ereignis keine Daten zugeordnet sind, wird eine Instanz der EventArgs-Basisklasse als Argument an die OnEventName-Methode übergeben.

Tastaturereignisse

Die Standardtastaturereignisse, die das Steuerelement behandeln kann, sind KeyDown, KeyPress und KeyUp.

Ereignisname

Zu überschreibende Methode

Ereignisbeschreibung

KeyDown

void OnKeyDown(KeyEventArgs)

Wird nur ausgelöst, wenn eine Taste zum ersten Mal gedrückt wird.

KeyPress

void OnKeyPress

(KeyPressEventArgs)

Wird jedes Mal ausgelöst, wenn eine Taste gedrückt wird. Wenn eine Taste gedrückt gehalten wird, wird ein KeyPress-Ereignis mit der im Betriebssystem definierten Wiederholungsrate ausgelöst.

KeyUp

void OnKeyUp(KeyEventArgs)

Wird ausgelöst, wenn eine Taste losgelassen wird.

Tipp

Die Behandlung von Tastatureingaben ist erheblich komplexer als das Überschreiben der in der vorangehenden Tabelle angegebenen Ereignisse und geht über das hier behandelte Thema hinaus. Weitere Informationen finden Sie unter Benutzereingaben in Windows Forms.

Mausereignisse

Die Mausereignisse, die das Steuerelement behandeln kann, sind MouseDown, MouseEnter, MouseHover, MouseLeave, MouseMove und MouseUp.

Ereignisname

Zu überschreibende Methode

Ereignisbeschreibung

MouseDown

void OnMouseDown(MouseEventArgs)

Wird ausgelöst, wenn die Maustaste gedrückt wird, während der Mauszeiger sich über dem Steuerelement befindet.

MouseEnter

void OnMouseEnter(EventArgs)

Wird ausgelöst, wenn der Mauszeiger zum ersten Mal in den Bereich des Steuerelements bewegt wird.

MouseHover

void OnMouseHover(EventArgs)

Wird ausgelöst, wenn der Mauszeiger auf das Steuerelement zeigt.

MouseLeave

void OnMouseLeave(EventArgs)

Wird ausgelöst, wenn der Mauszeiger den Bereich des Steuerelements verlässt.

MouseMove

void OnMouseMove(MouseEventArgs)

Wird ausgelöst, wenn der Mauszeiger den Bereich des Steuerelements betritt.

MouseUp

void OnMouseUp(MouseEventArgs)

Wird ausgelöst, wenn die Maustaste losgelassen wird, während der Mauszeiger sich über dem Steuerelement befindet bzw. der Mauszeiger den Bereich des Steuerelements verlässt.

Im folgenden Codefragment wird ein Beispiel für das Überschreiben des MouseDown-Ereignisses gezeigt.

Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
    MyBase.OnMouseDown(e)
    If Not (myAllowUserEdit) Then
        Return
    End If
    Capture = True
    dragging = True
    SetDragValue(New Point(e.X, e.Y))
End Sub
protected override void OnMouseDown(MouseEventArgs e) {
    base.OnMouseDown(e);
    if (!allowUserEdit) {
        return;
    }
    Capture = true;
    dragging = true;
    SetDragValue(new Point(e.X, e.Y));
}

Im folgenden Codefragment wird ein Beispiel für das Überschreiben des MouseMove-Ereignisses gezeigt.

Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
    MyBase.OnMouseMove(e)
    If (Not myAllowUserEdit Or Not dragging) Then
        Return
    End If
    SetDragValue(New Point(e.X, e.Y))
End Sub
protected override void OnMouseMove(MouseEventArgs e) {
    base.OnMouseMove(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    SetDragValue(new Point(e.X, e.Y));
}

Im folgenden Codefragment wird ein Beispiel für das Überschreiben des MouseUp-Ereignisses gezeigt.

Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
    MyBase.OnMouseUp(e)
    If (Not myAllowUserEdit Or Not dragging) Then
        Return
    End If
    Capture = False
    dragging = False
    Value = dragValue
    OnValueChanged(EventArgs.Empty)
End Sub
protected override void OnMouseUp(MouseEventArgs e) {
    base.OnMouseUp(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    Capture = false;
    dragging = false;
    value = dragValue;
    OnValueChanged(EventArgs.Empty);
}

Den vollständigen Quellcode für das FlashTrackBar-Beispiel finden Sie unter Gewusst wie: Erstellen eines Windows Forms-Steuerelements, das den Fortschritt anzeigt.

Siehe auch

Konzepte

Ereignisse in Windows Forms-Steuerelementen

Definieren eines Ereignisses in Windows Forms-Steuerelementen

Weitere Ressourcen

Behandeln und Auslösen von Ereignissen

Benutzereingaben in Windows Forms