Mausereignisse in Windows Forms
Wenn Sie Mauseingaben behandeln, sollten Sie in der Regel die Position des Mauszeigers und den Zustand der Maustasten kennen. Dieses Thema enthält Details zum Abrufen dieser Informationen aus Mausereignissen und erläutert die Reihenfolge, in der Mausklickereignisse in Windows Forms-Steuerelementen ausgelöst werden. Eine Liste und Beschreibung aller Mausereignisse finden Sie unter Wie Mauseingaben in Windows Forms funktionieren. Weitere Informationen finden Sie unter Übersicht über Ereignishandler (Windows Forms) und Übersicht über Ereignisse (Windows Forms).
Mausinformationen
MouseEventArgs wird an die Handler der Mausereignisse gesendet, die beim Drücken einer Maustaste und Verfolgen von Mausbewegungen ausgelöst werden. MouseEventArgs enthält Informationen zum aktuellen Zustand der Maus, einschließlich der Position des Mauszeigers in Clientkoordinaten, welche Maustasten gedrückt sind, und ob das Mausrad gescrollt ist. Zahlreiche Mausereignisse, beispielsweise Ereignisse, die lediglich darüber informieren, dass der Mauszeiger die Grenzen eines Steuerelements überschritten hat, senden ein EventArgs-Element ohne weitere Informationen an den Ereignishandler.
Wenn Sie den aktuellen Zustand der Maustasten oder die Position des Mauszeigers kennen möchten und sie die Behandlung eines Mausereignisses vermeiden möchten, können Sie auch die eigenschaften MouseButtons und MousePosition der Control Klasse verwenden. MouseButtons gibt Informationen dazu zurück, welche Maustasten aktuell gedrückt werden. Die MousePosition gibt die Bildschirmkoordinaten des Mauszeigers zurück und entspricht dem von Positionzurückgegebenen Wert.
Konvertieren zwischen Bildschirm- und Clientkoordinaten
Da sich einige Mauspositionsinformationen in Clientkoordinaten befinden und sich einige in Bildschirmkoordinaten befinden, müssen Sie möglicherweise einen Punkt von einem Koordinatensystem in den anderen konvertieren. Sie können dies ganz einfach tun, indem Sie die in der Control Klasse verfügbaren PointToClient- und PointToScreen Methoden verwenden.
Standardverhalten bei Mausklickereignissen
Wenn Sie Mausklickereignisse in der richtigen Reihenfolge behandeln möchten, müssen Sie die Reihenfolge kennen, in der Klickereignisse in Windows Forms-Steuerelementen ausgelöst werden. Alle Windows Forms-Steuerelemente lösen Klickereignisse in der gleichen Reihenfolge aus, wenn eine Maustaste gedrückt und losgelassen wird (unabhängig davon, welche Maustaste es ist), mit Ausnahme der in der folgenden Liste für einzelne Steuerelemente genannten. 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.
Ein Codebeispiel, das die Reihenfolge der Mausklickereignisse veranschaulicht, finden Sie unter How to: Handle User Input Events in Windows Forms Controls.
Einzelne Steuerelemente
Die folgenden Steuerelemente entsprechen nicht dem standardmäßigen Verhalten des Mausklickereignisses:
-
Anmerkung
Für das ComboBox-Steuerelement tritt das beschriebene Ereignisverhalten später ein, wenn der Benutzer auf das Bearbeitungsfeld, die Schaltfläche oder auf 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
Anmerkung
Das zu einem späteren Zeitpunkt detaillierte Ereignisverhalten tritt auf, wenn der Benutzer auf eine beliebige Stelle in diesen Steuerelementen 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
Anmerkung
Das im Folgenden beschriebene Verhalten tritt nur auf, wenn auf die Elemente im ListView-Steuerelement geklickt wird. Wenn im Steuerelement ein Klick auf eine andere Stelle erfolgt, werden keine Ereignisse ausgelöst. Zusätzlich zu den nachfolgend beschriebenen Ereignissen gibt es die BeforeLabelEdit- und AfterLabelEdit-Ereignisse, die für Sie von Interesse sein können, wenn Sie die Validierung mit dem ListView-Control verwenden 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
Anmerkung
Das im Folgenden beschriebene Verhalten tritt nur auf, wenn im TreeView-Steuerelement auf die Elemente selbst oder rechts neben sie geklickt wird. Wenn im Steuerelement ein Klick auf eine andere Stelle erfolgt, 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 von Umschaltsteuerelementen
Umschaltsteuerelemente, 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 gibt 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.
Anmerkung
Wenn der Mauszeiger bei gedrückter Maustaste vom Umschaltsteuerelement weg bewegt wird (z. B. wenn er die Maus bei gedrückter Maustaste vom Button-Steuerelement weg bewegt), zeichnet das Umschaltsteuerelement im erhöhten Zustand, und es tritt nur das MouseUp-Ereignis auf. Die ereignisse Click oder MouseClick treten in dieser Situation nicht auf.
Weitere Informationen
.NET Desktop feedback