Übersicht über die Mausverwendung (Windows Forms .NET)
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 Artikel werden diese Mausereignisse ausführlich beschrieben. Zudem wird erläutert, wie Sie die Systemeinstellungen für die Maus abrufen und ändern.
In Windows Forms werden Benutzereingaben in Form von Windows-Meldungen an Anwendungen gesendet. Eine Reihe überschreibbarer Methoden verarbeitet diese Meldungen auf Anwendungs-, Formular- und Steuerelementebene. Wenn diese Methoden mausbezogene Meldungen empfangen, lösen sie Ereignisse aus, die verarbeitet werden können, um Informationen über die Mauseingabe zu erhalten. Oftmals können Windows Forms-Anwendungen sämtliche Benutzereingaben verarbeiten, indem einfach diese Ereignisse verarbeitet werden. In anderen Fällen kann eine Anwendung eine der Methoden überschreiben, die Nachrichten verarbeiten, um eine bestimmte Nachricht abzufangen, bevor diese von der Anwendung, dem Formular oder dem Steuerelement empfangen wird.
Mausereignisse
Alle Windows Forms-Steuerelemente erben verschiedene Ereignisse, die mit Maus- und Tastatureingaben zu tun haben. Ein Steuerelement kann z. B. das Ereignis MouseClick verarbeiten, um die Position eines Mausklicks zu bestimmen. Weitere Informationen zu Mausereignissen finden Sie unter Verwenden von Mausereignissen.
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 Positionsinformationen der Maus 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.
Ändern der Einstellungen für die Mauseingabe
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 Methode SetStyle akzeptiert eine bitweise Kombination von ControlStyles-Werten, um zu bestimmen, ob das Steuerelement Standardklick- oder Doppelklickverhalten aufweist oder aber die Mauseingabe selbst verarbeitet. Außerdem enthält die Klasse SystemInformation 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 dem darauffolgenden Mausklick verstreichen dürfen, damit die Mausaktion als Doppelklick gilt |
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. |
Methoden zum Verarbeiten von Benutzereingabemeldungen
Formulare und Steuerelemente haben Zugriff auf die Schnittstelle IMessageFilter und mehrere überschreibbare Methoden, die Windows-Meldungen an verschiedenen Stellen der Nachrichtenwarteschlange verarbeiten. Diese Methoden verfügen alle über einen Message-Parameter, der die genauen Details von Windows-Meldungen kapselt. Sie können diese Methoden implementieren oder überschreiben, um die Nachricht zu untersuchen und anschließend zu verarbeiten oder an den nächsten Consumer in der Nachrichtenwarteschlange zu übergeben. In der folgenden Tabelle werden die Methoden vorgestellt, die die Windows-Meldungen in Windows Forms verarbeiten.
Methode | Hinweise |
---|---|
PreFilterMessage | Diese Methode fängt in die Warteschlange eingereihte (veröffentlichte) Windows-Nachrichten auf Anwendungsebene ab. |
PreProcessMessage | Diese Methode fängt Windows-Meldungen auf Formular- und Steuerelementebene ab, bevor diese verarbeitet werden. |
WndProc | Diese Methode verarbeitet Windows-Meldungen auf Formular- und Steuerelementebene. |
DefWndProc | Diese Methode führt die Standardverarbeitung von Windows-Meldungen auf Formular- und Steuerelementebene aus. Hierdurch wird die minimale Funktionalität eines Fensters gewährleistet. |
OnNotifyMessage | Diese Methode fängt Nachrichten auf Formular- und Steuerelementebene ab, nachdem diese verarbeitet wurden. Das Stilbit EnableNotifyMessage muss festgelegt werden, damit diese Methode aufgerufen wird. |
Siehe auch
.NET Desktop feedback