Dela via


Översikt över hur du använder musen

Att ta emot och hantera musinmatning är en viktig del av varje Windows-program. Du kan hantera mushändelser för att utföra en åtgärd i ditt program eller använda information om musplats för att utföra träfftestning eller andra åtgärder. Du kan också ändra hur kontrollerna i programmet hanterar musingångar. Den här artikeln beskriver dessa mushändelser i detalj och hur du hämtar och ändrar systeminställningarna för musen.

I Windows Forms skickas användarindata till applikationer i form av Windows-meddelanden. En serie tvingande metoder bearbetar dessa meddelanden på program-, formulär- och kontrollnivå. När dessa metoder tar emot musmeddelanden genererar de händelser som kan hanteras för att få information om musindata. I många fall kan Windows Forms-program bearbeta alla användarindata genom att hantera dessa händelser. I andra fall kan ett program åsidosätta en av de metoder som bearbetar meddelanden för att fånga upp ett visst meddelande innan det tas emot av programmet, formuläret eller kontrollen.

Mus-händelser

Alla Windows Forms-kontroller ärver en uppsättning händelser som rör mus- och tangentbordsindata. En kontroll kan till exempel hantera MouseClick händelsen för att fastställa platsen för ett musklick. Mer information om mushändelser finns i Använda mushändelser.

Musposition och kollisionstestning

När användaren flyttar musen flyttar operativsystemet muspekaren. Muspekaren innehåller en enda pixel, kallad hot spot, som operativsystemet spårar och känner igen som pekarens position. När användaren flyttar musen eller trycker på en musknapp, utlöser Control som innehåller HotSpot den rätta mushändelsen.

Du kan hämta den aktuella muspositionen med egenskapen Location för MouseEventArgs när du hanterar en mushändelse eller med hjälp av egenskapen Position för klassen Cursor. Du kan sedan använda information om musens plats för att utföra träfftestning och sedan utföra en åtgärd baserat på musens plats. Funktionen träfftestning är inbyggd i flera kontroller i Windows Forms, till exempel ListViewkontrollerna , TreeView, MonthCalendaroch DataGridView .

Träfftestning är användbart för att avgöra när programmet ska utföra en specifik åtgärd, när det används med lämplig mushändelse, till exempel MouseHover.

Ändra inställningar för musinmatning

Du kan identifiera och ändra hur en kontroll hanterar musindata genom att härleda från kontrollen och använda metoderna GetStyle och SetStyle. Metoden SetStyle tar en bitvis kombination av ControlStyles värden för att avgöra om kontrollen har standardklick, dubbelklicksbeteende eller om kontrollen hanterar sin egen musbearbetning. SystemInformation Klassen innehåller också egenskaper som beskriver musens funktioner och anger hur musen interagerar med operativsystemet. I följande tabell sammanfattas dessa egenskaper.

Fastighet Beskrivning
DoubleClickSize Hämtar dimensionerna i bildpunkter för det område där användaren måste klicka två gånger för att operativsystemet ska kunna betrakta de två klicken som dubbelklicka.
DoubleClickTime Hämtar det maximala antalet millisekunder som kan förflutit mellan ett första klick och ett andra klick för att musåtgärden ska betraktas som ett dubbelklicka.
MouseButtons Hämtar antalet knappar på musen.
MouseButtonsSwapped Hämtar ett värde som anger om funktionerna i de vänstra och högra musknapparna har växlats.
MouseHoverSize Hämtar dimensionerna i bildpunkter för den rektangel inom vilken muspekaren måste stanna under muspekarens hovringstid innan ett mus hovringsmeddelande genereras.
MouseHoverTime Hämtar tiden, i millisekunder, som muspekaren måste stanna i området för svävning innan ett hovringsmeddelande genereras.
MousePresent Hämtar ett värde som anger om en mus är installerad.
MouseSpeed Hämtar ett värde som anger den aktuella mushastigheten, från 1 till 20.
MouseWheelPresent Hämtar ett värde som anger om en mus med ett mushjul är installerat.
MouseWheelScrollDelta Hämtar mängden deltavärde för inkrementet för en enda mushjulsrotation.
MouseWheelScrollLines Hämtar antalet rader som ska rullas när mushjulet roteras.

Metoder som bearbetar användarindatameddelanden

Formulär och kontroller har åtkomst till IMessageFilter-gränssnittet och en uppsättning åsidosättbara metoder som bearbetar Windows-meddelanden på olika platser i meddelandekön. Dessa metoder har alla en Message parameter, som kapslar in den lågnivåinformationen för Windows-meddelanden. Du kan implementera eller åsidosätta dessa metoder för att undersöka meddelandet och sedan antingen använda meddelandet eller skicka det vidare till nästa konsument i meddelandekön. I följande tabell visas de metoder som bearbetar alla Windows-meddelanden i Windows Forms.

Metod Noteringar
PreFilterMessage Den här metoden avlyssnar köade (även kallade skickade) Windows-meddelanden på programnivå.
PreProcessMessage Den här metoden fångar upp Windows-meddelanden på formulär- och kontrollnivå innan de har bearbetats.
WndProc Den här metoden bearbetar Windows-meddelanden på formulär- och kontrollnivå.
DefWndProc Den här metoden utför standardbearbetningen av Windows-meddelanden på formulär- och kontrollnivå. Detta ger minimala funktioner i ett fönster.
OnNotifyMessage Den här metoden fångar upp meddelanden på formulär- och kontrollnivå efter att de har bearbetats. Den EnableNotifyMessage formatbiten måste anges för att den här metoden ska anropas.

Se även