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