Verwenden von Mausereignissen (Windows Forms .NET)
Die meisten Windows Forms-Programme verarbeiten Mauseingaben, indem sie Mausereignisse verarbeiten. Dieser Artikel enthält eine Übersicht über die Mausereignisse, einschließlich Details dazu, wann jedes Ereignis verwendet wird sowie zu den Daten, die für jedes Ereignis übergeben werden. Weitere Informationen zu Ereignissen im Allgemeinen finden Sie unter Übersicht zu Ereignissen (Windows Forms .NET).
Mausereignisse
Die Hauptmöglichkeit, auf Mauseingaben zu reagieren, ist die Verarbeitung von Mausereignissen. In der folgenden Tabelle finden Sie Mausereignisse sowie eine Erklärung dazu, wann ein jeweiliges Ereignis auftritt.
Mausereignis | BESCHREIBUNG |
---|---|
Click | Dieses Ereignis tritt auf, wenn die Maustaste losgelassen wird, in der Regel vor dem MouseUp-Ereignis. Der Handler für dieses Ereignis empfängt ein Argument des Typs EventArgs. Verarbeiten Sie dieses Ereignis, wenn Sie nur bestimmen müssen, wann ein Klick auftritt. |
MouseClick | Dieses Ereignis tritt ein, wenn der Benutzer mit der Maus auf das Steuerelement klickt. Der Handler für dieses Ereignis empfängt ein Argument des Typs MouseEventArgs. Verarbeiten Sie dieses Ereignis, wenn Sie Informationen zur Maus erhalten möchten, wenn ein Klick auftritt. |
DoubleClick | Dieses Ereignis tritt beim Doppelklicken auf das Steuerelement ein. Der Handler für dieses Ereignis empfängt ein Argument des Typs EventArgs. Verarbeiten Sie dieses Ereignis, wenn Sie nur bestimmen müssen, wann ein Doppelklick auftritt. |
MouseDoubleClick | Dieses Ereignis tritt ein, wenn der Benutzer mit der Maus auf das Steuerelement doppelklickt. Der Handler für dieses Ereignis empfängt ein Argument des Typs MouseEventArgs. Verarbeiten Sie dieses Ereignis, wenn Sie Informationen zur Maus erhalten möchten, wenn ein Doppelklick auftritt. |
MouseDown | Dieser Ereignis tritt ein, wenn sich der Mauszeiger über dem Steuerelement befindet und der Benutzer eine Maustaste drückt. Der Handler für dieses Ereignis empfängt ein Argument des Typs MouseEventArgs. |
MouseEnter | Dieses Ereignis tritt je nach Art des Steuerelements auf, wenn der Mauszeiger die Grenze oder den Clientbereich des Steuerelements überschreitet. Der Handler für dieses Ereignis empfängt ein Argument des Typs EventArgs. |
MouseHover | Dieses Ereignis tritt auf, wenn der Mauszeiger angehalten wird und über dem Steuerelement verbleibt. Der Handler für dieses Ereignis empfängt ein Argument des Typs EventArgs. |
MouseLeave | Dieses Ereignis tritt je nach Typ des Steuerelements auf, wenn der Mauszeiger die Grenzen oder den Clientbereich eines Steuerelements verlässt. Der Handler für dieses Ereignis empfängt ein Argument des Typs EventArgs. |
MouseMove | Dieses Ereignis tritt auf, wenn der Mauszeiger bewegt wird, während er sich über einem Steuerelement befindet. Der Handler für dieses Ereignis empfängt ein Argument des Typs MouseEventArgs. |
MouseUp | Dieses Ereignis tritt ein, wenn sich der Mauszeiger über dem Steuerelement befindet und der Benutzer eine Maustaste loslässt. Der Handler für dieses Ereignis empfängt ein Argument des Typs MouseEventArgs. |
MouseWheel | Dieses Ereignis tritt auf, wenn der Benutzer das Mausrad dreht, während der Fokus auf dem Steuerelement liegt. Der Handler für dieses Ereignis empfängt ein Argument des Typs MouseEventArgs. Sie können die Delta-Eigenschaft von MouseEventArgs verwenden, um zu bestimmen, wie weit die Maus gescrollt wurde. |
Mausinformationen
Ein MouseEventArgs wird an Handler von Mausereignissen gesendet, die beim Drücken einer Maustaste und Verfolgen von Mausbewegungen ausgelöst werden. MouseEventArgs enthält Informationen zum aktuellen Zustand der Maus, z. B. die Position des Mauszeigers in Clientkoordinaten, welche Maustasten gedrückt werden und ob das Mausrad bewegt wurde. Zahlreiche Mausereignisse, beispielsweise Ereignisse, die ausgelöst werden, wenn der Mauszeiger die Grenzen eines Steuerelements überschritten oder verlassen hat, senden eine EventArgs-Klasse ohne weitere Informationen an den Ereignishandler.
Wenn Sie den aktuellen Zustand der Maustasten oder die Position des Mauszeigers erfahren möchten, ohne ein Mausereignis zu behandeln, können Sie auch die MouseButtons-Eigenschaft und die MousePosition-Eigenschaft der Control-Klasse verwenden. MouseButtons gibt Informationen darüber zurück, welche Maustasten aktuell gedrückt werden. MousePosition gibt die Bildschirmkoordinaten des Mauszeigers zurück, was dem von Position zurückgegebenen Wert entspricht.
Konvertieren zwischen Bildschirm- und Clientkoordinaten
Da einige Mauspositionsinformationen in Clientkoordinaten und einige in Bildschirmkoordinaten vorhanden sind, müssen Sie möglicherweise einen Punkt aus einem Koordinatensystem in das andere Koordinatensystem konvertieren. Eine einfache Möglichkeit hierzu bieten die PointToClient-Methode und die PointToScreen-Methode der Control-Klasse.
Standardverhalten bei Mausklickereignissen
Wenn Sie Mausklickereignisse in der richtigen Reihenfolge behandeln möchten, müssen Sie die Reihenfolge kennen, in der Mausklickereignisse in Windows Forms-Steuerelementen ausgelöst werden. Wenn eine unterstützte Maustaste gedrückt und wieder losgelassen wird, lösen alle Windows Forms-Steuerelemente Mausklickereignisse in derselben Reihenfolge aus. Ausnahmen für einzelne Steuerelemente sind in der folgenden Liste aufgeführt. In der folgenden Liste ist die Reihenfolge der Ereignisse aufgeführt, die bei einem einzelnen Mausklick ausgelöst werden:
- MouseDown -Ereignis.
- Click -Ereignis.
- MouseClick -Ereignis.
- MouseUp -Ereignis.
In der folgenden Liste ist die Reihenfolge der Ereignisse aufgeführt, die bei einem Doppelklick mit der Maus ausgelöst werden:
MouseDown -Ereignis.
Click -Ereignis.
MouseClick -Ereignis.
MouseUp -Ereignis.
MouseDown -Ereignis.
DoubleClick -Ereignis.
Dies kann abhängig davon variieren, ob für das betreffende Steuerelement das StandardDoubleClick-Stilbit auf
true
festgelegt ist. Weitere Informationen zum Festlegen eines ControlStyles-Bits finden Sie unter der SetStyle-Methode.MouseDoubleClick -Ereignis.
MouseUp -Ereignis.
Einzelne Steuerelemente
Die folgenden Steuerelemente weisen nicht das Standardverhalten bei Mausklickereignissen auf:
-
Hinweis
Für das ComboBox-Steuerelement tritt das im Folgenden beschriebene Verhalten auf, wenn der Benutzer auf das Bearbeitungsfeld, die Schaltfläche oder ein Element in der Liste klickt.
- Klick mit der linken Maustaste:Click, MouseClick
- Klick mit der rechten Maustaste: Es werden keine Klickereignisse ausgelöst.
- Doppelklick mit der linken Maustaste:Click, MouseClick, Click, MouseClick
- Doppelklick mit der rechten Maustaste: Es werden keine Klickereignisse ausgelöst.
TextBox-Steuerelement, RichTextBox-Steuerelement, ListBox-Steuerelement, MaskedTextBox-Steuerelement und CheckedListBox-Steuerelement
Hinweis
Das im Folgenden beschriebene Verhalten tritt auf, wenn der Benutzer innerhalb dieser Steuerelemente auf eine beliebige Stelle klickt.
- Klick mit der linken Maustaste:Click, MouseClick
- Klick mit der rechten Maustaste: Es werden keine Klickereignisse ausgelöst.
- Doppelklick mit der linken Maustaste:Click, MouseClick, DoubleClick, MouseDoubleClick
- Doppelklick mit der rechten Maustaste: Es werden keine Klickereignisse ausgelöst.
ListView-Steuerelement
Hinweis
Das im Folgenden beschriebene Verhalten tritt nur auf, wenn der Benutzer auf die Elemente im ListView-Steuerelement klickt. Wenn der Benutzer im Steuerelement auf eine andere Stelle klickt, werden keine Ereignisse ausgelöst. Neben den weiter unten beschriebenen Ereignissen könnten auch das BeforeLabelEdit-Ereignis und das AfterLabelEdit-Ereignis für Sie von Interesse sein, wenn Sie eine Validierung mit dem ListView-Steuerelement durchführen möchten.
- Klick mit der linken Maustaste:Click, MouseClick
- Klick mit der rechten Maustaste:Click, MouseClick
- Doppelklick mit der linken Maustaste:Click, MouseClick, DoubleClick, MouseDoubleClick
- Doppelklick mit der rechten Maustaste:Click, MouseClick, DoubleClick, MouseDoubleClick
TreeView-Steuerelement
Hinweis
Das im Folgenden beschriebene Verhalten tritt nur auf, wenn der Benutzer im TreeView-Steuerelement auf die Elemente selbst oder rechts neben sie klickt. Wenn der Benutzer im Steuerelement auf eine andere Stelle klickt, werden keine Ereignisse ausgelöst. Neben den weiter unten beschriebenen Ereignissen könnten auch die Ereignisse BeforeCheck, BeforeSelect, BeforeLabelEdit, AfterSelect, AfterCheck und AfterLabelEdit für Sie von Interesse sein, wenn Sie eine Validierung mit dem TreeView-Steuerelement durchführen möchten.
- Klick mit der linken Maustaste:Click, MouseClick
- Klick mit der rechten Maustaste:Click, MouseClick
- Doppelklick mit der linken Maustaste:Click, MouseClick, DoubleClick, MouseDoubleClick
- Doppelklick mit der rechten Maustaste:Click, MouseClick, DoubleClick, MouseDoubleClick
Zeichnungsverhalten umschaltbarer Steuerelemente
Umschaltbare Steuerelemente, wie die Steuerelemente, die von der ButtonBase-Klasse abgeleitet werden, weisen bei Mausklickereignissen das folgende Zeichnungsverhalten auf:
Der Benutzer drückt die Maustaste.
Das Steuerelement zeichnet im gedrückten Zustand.
Das MouseDown-Ereignis wird ausgelöst.
Der Benutzer lässt die Maustaste los.
Das Steuerelement zeichnet im erhöhten Zustand.
Das Click-Ereignis wird ausgelöst.
Das MouseClick-Ereignis wird ausgelöst.
Das MouseUp-Ereignis wird ausgelöst.
Hinweis
Wenn der Benutzer den Mauszeiger bei gedrückter Maustaste aus dem umschaltbaren Steuerelement bewegt (z. B. wenn er die Maus bei gedrückter Maustaste vom Button-Steuerelement weg bewegt), zeichnet das umschaltbare Steuerelement im erhöhten Zustand, und es tritt nur das MouseUp-Ereignis auf. Das Click-Ereignis oder das MouseClick-Ereignis tritt in dieser Situation nicht auf.
Siehe auch
.NET Desktop feedback