Overzicht van het gebruik van de muis (Windows Forms .NET)
Het ontvangen en verwerken van muisinvoer is een belangrijk onderdeel van elke Windows-toepassing. U kunt muisevenementen verwerken om een actie uit te voeren in uw toepassing of muislocatiegegevens gebruiken om hittests of andere acties uit te voeren. U kunt ook de manier wijzigen waarop de besturingselementen in uw toepassing muisinvoer verwerken. In dit artikel worden deze muisevenementen gedetailleerd beschreven en wordt beschreven hoe u systeeminstellingen voor de muis kunt verkrijgen en wijzigen.
In Windows Forms wordt gebruikersinvoer verzonden naar toepassingen in de vorm van Windows-berichten. Een reeks overschrijfbare methoden verwerken deze berichten op het niveau van de toepassing, het formulier en het besturingselement. Wanneer deze methoden muisberichten ontvangen, worden gebeurtenissen gegenereerd die kunnen worden verwerkt om informatie over de invoer van de muis op te halen. In veel gevallen kunnen Windows Forms-toepassingen alle gebruikersinvoer verwerken door deze gebeurtenissen te verwerken. In andere gevallen kan een toepassing een van de methoden overschrijven waarmee berichten worden verwerkt om een bepaald bericht te onderscheppen voordat het wordt ontvangen door de toepassing, het formulier of het besturingselement.
Muisevenementen
Alle Besturingselementen van Windows Forms nemen een reeks gebeurtenissen over die betrekking hebben op muis- en toetsenbordinvoer. Een besturingselement kan bijvoorbeeld de MouseClick gebeurtenis verwerken om de locatie van een muisklik te bepalen. Zie Gebruik van muisgebeurtenissenvoor meer informatie over de muisgebeurtenissen.
Locatie van de muis en het testen van treffers
Wanneer de gebruiker de muis verplaatst, verplaatst het besturingssysteem de muisaanwijzer. De muisaanwijzer bevat één pixel, de hot spot genoemd, die door het besturingssysteem wordt bijgehouden en herkend als de positie van de aanwijzer. Wanneer de gebruiker de muis beweegt of op een muisknop drukt, roept de Control die de HotSpot bevat de juiste muisgebeurtenis op.
U kunt de huidige muispositie verkrijgen met de eigenschap Location van de MouseEventArgs bij het afhandelen van een muisevenement of met behulp van de eigenschap Position van de Cursor-klasse. Vervolgens kunt u informatie over de locatie van de muis gebruiken om hittests uit te voeren en vervolgens een actie uit te voeren op basis van de locatie van de muis. De mogelijkheid om hit-tests uit te voeren is ingebouwd in verschillende besturingselementen in Windows Forms, zoals de ListView, TreeView, MonthCalendar en DataGridView controls.
Wordt gebruikt met de juiste muisgebeurtenis, MouseHover bijvoorbeeld, is hit-testing erg handig om te bepalen wanneer uw toepassing een specifieke actie moet uitvoeren.
Instellingen voor muisinvoer wijzigen
U kunt de manier waarop een besturingselement muisinvoer verwerkt detecteren en wijzigen door af te leiden van het besturingselement en de GetStyle en SetStyle methoden te gebruiken. De methode SetStyle gebruikt een bitsgewijze combinatie van ControlStyles waarden om te bepalen of het besturingselement standaard klik- en dubbelklikgedrag heeft of dat het besturingselement zijn eigen muisinteractie afhandelt. De SystemInformation-klasse bevat ook eigenschappen die de mogelijkheden van de muis beschrijven en opgeven hoe de muis communiceert met het besturingssysteem. De volgende tabel bevat een overzicht van deze eigenschappen.
Eigenschap | Beschrijving |
---|---|
DoubleClickSize | Hiermee krijgt u de afmetingen, in pixels, van het gebied waarin de gebruiker tweemaal moet klikken zodat het besturingssysteem dit als een dubbelklik beschouwt. |
DoubleClickTime | Hiermee haalt u het maximum aantal milliseconden op dat tussen een eerste klik en een tweede klik kan worden verstreken, zodat de muisactie als een dubbelklik kan worden beschouwd. |
MouseButtons | Haalt het aantal knoppen van de muis op. |
MouseButtonsSwapped | Hiermee wordt een waarde opgehaald die aangeeft of de functies van de linker- en rechtermuisknoppen zijn gewisseld. |
MouseHoverSize | Hiermee haalt u de afmetingen in pixels op van de rechthoek waarbinnen de muisaanwijzer moet blijven gedurende de wachttijd voordat een muis-hoverbericht wordt gegenereerd. |
MouseHoverTime | Hiermee wordt de tijd in milliseconden opgehaald die de muisaanwijzer in de hoverrechthoek moet blijven voordat er een hoverbericht voor de muis wordt verzonden. |
MousePresent | Hiermee wordt een waarde opgehaald die aangeeft of een muis is geïnstalleerd. |
MouseSpeed | Hiermee haalt u een waarde op die de huidige muissnelheid aangeeft, van 1 tot 20. |
MouseWheelPresent | Hiermee wordt een waarde opgehaald die aangeeft of een muis met een muiswiel is geïnstalleerd. |
MouseWheelScrollDelta | Hiermee haalt u de hoeveelheid deltawaarde van de verhoging van één muiswielrotatie op. |
MouseWheelScrollLines | Hiermee haalt u het aantal lijnen op om te scrollen wanneer het muiswiel wordt gedraaid. |
Methoden voor het verwerken van gebruikersinvoerberichten
Formulieren en besturingselementen hebben toegang tot de IMessageFilter-interface en een set overschrijfbare methoden waarmee Windows-berichten op verschillende punten in de berichtenwachtrij worden verwerkt. Deze methoden hebben allemaal een Message parameter, die de details van Windows-berichten op laag niveau inkapselt. U kunt deze methoden implementeren of overschrijven om het bericht te onderzoeken en vervolgens het bericht te gebruiken of door te geven aan de volgende consument in de berichtenwachtrij. De volgende tabel bevat de methoden voor het verwerken van alle Windows-berichten in Windows Forms.
Methode | Notities |
---|---|
PreFilterMessage | Met deze methode worden Windows-berichten in de wachtrij onderschept (ook wel gepost) op toepassingsniveau. |
PreProcessMessage | Met deze methode worden Windows-berichten onderschept op formulier- en besturingsniveau voordat ze zijn verwerkt. |
WndProc | Met deze methode worden Windows-berichten op formulier- en besturingsniveau verwerkt. |
DefWndProc | Met deze methode wordt de standaardverwerking van Windows-berichten uitgevoerd op formulier- en besturingsniveau. Dit biedt de minimale functionaliteit van een venster. |
OnNotifyMessage | Met deze methode worden berichten onderschept op formulier- en besturingsniveau, nadat deze zijn verwerkt. De EnableNotifyMessage stijlbit moet worden ingesteld om deze methode aan te roepen. |
Zie ook
.NET Desktop feedback