Behandeln von Benutzereingaben
In diesem Thema werden die wichtigsten Tastatur- und Mausereignisse beschrieben, die von System.Windows.Forms.Control bereitgestellt werden. Beim Bearbeiten eines Ereignisses sollten Autoren von Steuerelementen die geschützte Methode On
EventName überschreiben, statt einen Delegaten an das Ereignis anzuhängen. Zum Überprüfen der Ereignisse siehe Auslösen von Ereignissen aus einer Komponente.
Hinweis
Wenn einem Ereignis keine Daten zugeordnet sind, wird eine Instanz der Basisklasse EventArgs an die On
EventName-Methode übergeben.
Tastaturereignisse
Die üblichen Tastaturereignisse, die das Steuerelement verarbeiten kann, sind KeyDown, KeyPress und KeyUp.
Veranstaltungsname | Zu überschreibende Methode | Beschreibung des Ereignisses |
---|---|---|
KeyDown |
void OnKeyDown(KeyEventArgs) |
Wird nur ausgelöst, wenn anfangs eine Taste 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 in der vom Betriebssystem definierten Wiederholungsrate ein Ereignis vom Typ KeyPress ausgelöst. |
KeyUp |
void OnKeyUp(KeyEventArgs) |
Wird ausgelöst, wenn eine Taste losgelassen wird. |
Hinweis
Das Bearbeiten von Tastatureingaben ist wesentlich komplexer als das Überschreiben der Ereignisse in der obigen Tabelle und würde Rahmen dieses Themas sprengen. Weitere Informationen finden Sie unter Benutzereingaben in Windows Forms.
Mausereignisse
Die Mausereignisse, die das Steuerelement verarbeiten kann, sind MouseDown, MouseEnter, MouseHover, MouseLeave, MouseMove und MouseUp.
Veranstaltungsname | Zu überschreibende Methode | Beschreibung des Ereignisses |
---|---|---|
MouseDown |
void OnMouseDown(MouseEventArgs) |
Wird ausgelöst, wenn sich der Mauszeiger über dem Steuerelement befindet und eine Maustaste gedrückt wird. |
MouseEnter |
void OnMouseEnter(EventArgs) |
Wird ausgelöst, wenn der Mauszeiger zunächst auf den Bereich des Steuerelements trifft. |
MouseHover |
void OnMouseHover(EventArgs) |
Wird ausgelöst, wenn der Mauszeiger über das Steuerelement bewegt wird. |
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 in den Bereich des Steuerelements wechselt. |
MouseUp |
void OnMouseUp(MouseEventArgs) |
Wird ausgelöst, wenn die Maustaste losgelassen wird, während sich der Mauszeiger über dem Steuerelement befindet oder den Bereich des Steuerelements verlässt. |
Das folgende Codefragment veranschaulicht beispielsweise, wie das MouseDown-Ereignis überschrieben wird.
protected override void OnMouseDown(MouseEventArgs e) {
base.OnMouseDown(e);
if (!allowUserEdit) {
return;
}
Capture = true;
dragging = true;
SetDragValue(new Point(e.X, e.Y));
}
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
Das folgende Codefragment veranschaulicht beispielsweise, wie das MouseMove-Ereignis überschrieben wird.
protected override void OnMouseMove(MouseEventArgs e) {
base.OnMouseMove(e);
if (!allowUserEdit || !dragging) {
return;
}
SetDragValue(new Point(e.X, e.Y));
}
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
Das folgende Codefragment veranschaulicht beispielsweise, wie das MouseUp-Ereignis überschrieben wird.
protected override void OnMouseUp(MouseEventArgs e) {
base.OnMouseUp(e);
if (!allowUserEdit || !dragging) {
return;
}
Capture = false;
dragging = false;
value = dragValue;
OnValueChanged(EventArgs.Empty);
}
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
Für den vollständigen Quellencode für das FlashTrackBar
-Beispiel siehe Vorgehensweise: Erstellen eines Windows Forms-Steuerelement, das den Fortschritt anzeigt.
Weitere Informationen
.NET Desktop feedback