Přehled používání myši (model Windows Forms .NET)

Příjem a zpracování vstupu myši je důležitou součástí každé aplikace systému Windows. Události myši můžete zpracovat a provést akci v aplikaci nebo pomocí informací o poloze myši provést testování nebo jiné akce. Můžete také změnit způsob, jakým ovládací prvky v aplikaci zpracovávají vstup myši. Tento článek podrobně popisuje tyto události myši a informace o tom, jak získat a změnit nastavení systému myši.

Důležité

Dokumentace k desktopové příručce pro .NET 7 a .NET 6 se právě připravuje.

V model Windows Forms se uživatelský vstup odesílá do aplikací ve formě zpráv systému Windows. Řada přepisovatelných metod zpracovává tyto zprávy na úrovni aplikace, formuláře a řízení. Když tyto metody přijímají zprávy myši, vyvolávají události, které lze zpracovat, aby získaly informace o vstupu myši. V mnoha případech můžou aplikace model Windows Forms zpracovávat všechny vstupy uživatelů jednoduše zpracováním těchto událostí. V jiných případech může aplikace přepsat jednu z metod, které zpracovávají zprávy, aby zachytily konkrétní zprávu před tím, než ji aplikace, formulář nebo ovládací prvek přijme.

Události myši

Všechny ovládací prvky model Windows Forms dědí sadu událostí souvisejících se vstupem myši a klávesnice. Ovládací prvek může například zpracovat MouseClick událost a určit umístění kliknutí myší. Další informace oudálostch

Umístění myši a testování hit-testing

Když uživatel přesune myš, operační systém přesune ukazatel myši. Ukazatel myši obsahuje jeden pixel, označovaný jako aktivní bod, který operační systém sleduje a rozpozná jako pozici ukazatele. Když uživatel přesune myš nebo stiskne tlačítko myši, Control vyvolá HotSpot odpovídající událost myši.

Aktuální pozici myši můžete získat pomocí Location vlastnosti MouseEventArgs při zpracování události myši nebo pomocí Position vlastnosti Cursor třídy. Informace o poloze myši pak můžete použít k provedení testování hit-testování a pak provést akci na základě umístění myši. Funkce hit-testování je integrována do několika ovládacích prvků v model Windows Forms, jako ListViewje , TreeViewMonthCalendar a DataGridView ovládací prvky.

Používá se s příslušnou událostí myši, MouseHover například při testování hit-testování je velmi užitečné pro určení, kdy by vaše aplikace měla provést konkrétní akci.

Změna nastavení vstupu myši

Způsob, jakým ovládací prvek zpracovává vstup myši, můžete zjistit a změnit tak, že se odvozuje z ovládacího prvku a pomocí GetStyleSetStyle metod. Metoda SetStyle používá bitovou kombinaci ControlStyles hodnot k určení, zda ovládací prvek bude mít standardní kliknutí, poklikání chování, nebo pokud ovládací prvek zpracuje vlastní zpracování myši. Třída také obsahuje vlastnosti, SystemInformation které popisují možnosti myši a určují, jak myš komunikuje s operačním systémem. Následující tabulka shrnuje tyto vlastnosti.

Vlastnost Popis
DoubleClickSize Získá rozměry v pixelech oblasti, ve které musí uživatel kliknout dvakrát, aby operační systém zvážil dva kliknutí na dvojité kliknutí.
DoubleClickTime Získá maximální počet milisekund, které mohou uplynout mezi prvním kliknutím a druhým kliknutím pro akci myši, která má být považována za dvojité kliknutí.
MouseButtons Získá počet tlačítek myši.
MouseButtonsSwapped Získá hodnotu určující, zda funkce levé a pravé tlačítka myši byly prohozeny.
MouseHoverSize Získá rozměry v pixelech obdélníku, ve kterém musí ukazatel myši zůstat pro čas najetí myší, než se vygeneruje zpráva najetí myší.
MouseHoverTime Získá čas v milisekundách, že ukazatel myši musí zůstat v obdélníku najetí myší před vygenerování zprávy najetí myší.
MousePresent Získá hodnotu označující, zda je nainstalována myš.
MouseSpeed Získá hodnotu označující aktuální rychlost myši, od 1 do 20.
MouseWheelPresent Získá hodnotu označující, zda je nainstalována myš s kolečkem myši.
MouseWheelScrollDelta Získá množství rozdílové hodnoty přírůstku jednoho kolečka myši otáčení.
MouseWheelScrollLines Získá počet řádků, které se mají posouvat při otáčení kolečka myši.

Metody, které zpracovávají zprávy uživatelského vstupu

Formuláře a ovládací prvky mají přístup k IMessageFilter rozhraní a sadě přepisovatelných metod, které zpracovávají zprávy systému Windows v různých bodech fronty zpráv. Všechny tyto metody mají Message parametr, který zapouzdřuje podrobnosti nízké úrovně zpráv systému Windows. Tyto metody můžete implementovat nebo přepsat, abyste zprávu prozkoumali a pak ji buď spotřebovali, nebo ji předali dalšímu příjemci ve frontě zpráv. Následující tabulka obsahuje metody, které zpracovávají všechny zprávy systému Windows v model Windows Forms.

metoda Notes
PreFilterMessage Tato metoda zachytí zprávy windows zařazené do fronty (označované také jako publikované) na úrovni aplikace.
PreProcessMessage Tato metoda zachycuje zprávy systému Windows na úrovni formuláře a ovládacího prvku před jejich zpracováním.
WndProc Tato metoda zpracovává zprávy systému Windows na úrovni formuláře a ovládacího prvku.
DefWndProc Tato metoda provádí výchozí zpracování zpráv systému Windows na úrovni formuláře a ovládacího prvku. To poskytuje minimální funkčnost okna.
OnNotifyMessage Tato metoda zachycuje zprávy na úrovni formuláře a ovládacího prvku po jejich zpracování. Bit EnableNotifyMessage stylu musí být nastaven pro tuto metodu, která má být volána.

Viz také