Funktionsweise von Mauseingaben in Windows Forms

Das Empfangen und Verarbeiten von Mauseingaben ist ein wichtiger Bestandteil jeder Windows-Anwendung. Sie können Mausereignisse verarbeiten, um eine Aktion in Ihrer Anwendung auszuführen, oder mithilfe von Informationen zur Mausposition Treffertests oder andere Aktionen ausführen. Außerdem haben Sie die Möglichkeit, zu ändern, wie die Steuerelemente in Ihrer Anwendung Mauseingaben verarbeiten. In diesem Thema werden diese Mausereignisse ausführlich beschrieben. Zudem wird erläutert, wie Sie die Systemeinstellungen für die Maus abrufen und ändern. Weitere Informationen zu den Daten, die mit den Mausereignissen bereitgestellt werden, und die Reihenfolge, in der die Mausklickereignisse ausgelöst werden, finden Sie unter Mausereignisse in Windows Forms.

Mausposition und Treffertests

Wenn der Benutzer die Maus bewegt, verschiebt das Betriebssystem den Mauszeiger. Der Mauszeiger enthält ein einzelnes Pixel, den Hotspot, das vom Betriebssystem nachverfolgt und als Position des Zeigers erkannt wird. Wenn der Benutzer die Maus bewegt oder eine Maustaste drückt, löst das Steuerelement (Control), das den Hotspot (HotSpot-Eigenschaft) enthält, das entsprechende Mausereignis aus. Sie können die aktuelle Mausposition mit der Eigenschaft Location der Klasse MouseEventArgs abrufen, wenn ein Mausereignis verarbeitet wird, oder indem Sie die Eigenschaft Position der Klasse Cursor verwenden. Anschließend können Sie mithilfe der Mauspositionsinformationen Treffertests durchführen und eine Aktion auf Basis der Mausposition ausführen. Die Treffertestfunktion ist in Windows Forms in mehrere Steuerelemente integriert, z. B. in die Steuerelemente ListView, TreeView, MonthCalendar und DataGridView. In Kombination mit dem richtigen Mausereignis, z. B. MouseHover, sind Treffertest sehr nützlich, um zu bestimmen, wann die Anwendung eine bestimmte Aktion durchführen soll.

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 ausgelöst wird.

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.

Ändern der Mauseingabe und Erkennen von System-Einstellungen

Sie können die Art, wie ein Steuerelement Mauseingaben verarbeitet, erkennen und ändern, indem Sie eine Ableitung vom Steuerelement durchführen und die Methoden GetStyle und SetStyle verwenden. Die SetStyle-Methode akzeptiert eine bitweise Kombination von ControlStyles-Werten, um zu bestimmen, ob das Steuerelement ein Standardklick- oder ein Doppelklickverhalten aufweist oder aber die Mauseingabe selbst verarbeitet. Außerdem enthält die SystemInformation-Klasse Eigenschaften, die die Funktionen der Maus beschreiben und angeben, wie die Maus mit dem Betriebssystem interagiert. In der folgenden Tabelle werden diese Eigenschaften zusammengefasst.

Eigenschaft BESCHREIBUNG
DoubleClickSize Ruft die Dimensionen des Bereichs, auf den Benutzer zweimal klicken müssen, damit zwei Mausklicks als Doppelklick erkannt werden, in Pixel ab
DoubleClickTime Ruft die maximale Anzahl von Millisekunden ab, die zwischen dem ersten und einem zweiten Mausklick verstreichen dürfen, damit die Mausaktion vom Betriebssystem als Doppelklick erkannt wird.
MouseButtons Ruft die Anzahl der Maustasten ab.
MouseButtonsSwapped Ruft einen Wert ab, der angibt, ob die Funktionen der linken und der rechten Maustaste vertauscht wurden.
MouseHoverSize Ruft die Abmessungen des Rechtecks in Pixel ab, auf das der Mauszeiger für eine bestimmte Zeit zeigen muss, bevor eine Mausbewegungsmeldung generiert wird.
MouseHoverTime Ruft die Zeit in Millisekunden ab, für die sich der Mauszeiger im Bewegungsrechteck befinden muss, bevor eine Mausbewegungsmeldung generiert wird.
MousePresent Ruft einen Wert ab, der angibt, ob eine Maus installiert ist
MouseSpeed Ruft einen Wert ab, der die aktuelle Mausgeschwindigkeit auf einer Skala von 1 bis 20 angibt
MouseWheelPresent Ruft einen Wert ab, der angibt, ob eine Maus mit einem Mausrad installiert ist.
MouseWheelScrollDelta Ruft die Größe des Deltawerts des Inkrements einer einzelnen Drehung des Mausrads ab
MouseWheelScrollLines Ruft die Anzahl der Zeilen ab, die mit einem Bildlauf erfasst werden, wenn das Mausrad gedreht wird.

Weitere Informationen