Jak funguje vstup myši ve Windows Forms

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 k provedení akce v aplikaci nebo k provedení testování nebo jiných akcí pomocí informací o poloze myši. Kromě toho můžete změnit způsob, jakým ovládací prvky v aplikaci zpracovávají vstup myši. Toto téma podrobně popisuje tyto události myši a informace o tom, jak získat a změnit nastavení systému myši. Další informace o datech poskytovaných událostmi myši a pořadí, ve kterém jsou vyvolány události kliknutí myší, naleznete v tématu Události myši v model Windows Forms.

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

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. Následně můžete použít informace o poloze myši 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 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.

Události myši

Primárním způsobem reakce na vstup myši je zpracování událostí myši. Následující tabulka ukazuje události myši a popisuje, kdy jsou vyvolány.

Událost myši Popis
Click K této události dochází při uvolnění tlačítka myši, obvykle před událostí MouseUp . Obslužná rutina pro tuto událost obdrží argument typu EventArgs. Tuto událost zpracujte pouze v případě, že potřebujete určit, kdy dojde k kliknutí.
MouseClick K této události dochází, když uživatel klikne na ovládací prvek myší. Obslužná rutina pro tuto událost obdrží argument typu MouseEventArgs. Tuto událost zpracujte, když potřebujete získat informace o myši, když dojde k kliknutí.
DoubleClick K této události dochází, když je ovládací prvek poklikáním. Obslužná rutina pro tuto událost obdrží argument typu EventArgs. Tuto událost zpracujte, jen když potřebujete určit, kdy dojde k dvojitému kliknutí.
MouseDoubleClick K této události dochází, když uživatel dvakrát klikne na ovládací prvek myší. Obslužná rutina pro tuto událost obdrží argument typu MouseEventArgs. Tuto událost zpracujte, když potřebujete získat informace o myši, když dojde k dvojitému kliknutí.
MouseDown K této události dochází, když je ukazatel myši nad ovládacím prvku a uživatel stiskne tlačítko myši. Obslužná rutina pro tuto událost obdrží argument typu MouseEventArgs.
MouseEnter K této události dochází, když ukazatel myši přejde do ohraničení nebo klientské oblasti ovládacího prvku v závislosti na typu ovládacího prvku. Obslužná rutina pro tuto událost obdrží argument typu EventArgs.
MouseHover K této události dochází, když ukazatel myši zastaví a umístí se nad ovládací prvek. Obslužná rutina pro tuto událost obdrží argument typu EventArgs.
MouseLeave Tato událost nastane, když ukazatel myši opustí ohraničení nebo klientskou oblast ovládacího prvku v závislosti na typu ovládacího prvku. Obslužná rutina pro tuto událost obdrží argument typu EventArgs.
MouseMove K této události dochází, když se ukazatel myši přesune, když je přes ovládací prvek. Obslužná rutina pro tuto událost obdrží argument typu MouseEventArgs.
MouseUp K této události dochází, když je ukazatel myši nad ovládacím prvku a uživatel uvolní tlačítko myši. Obslužná rutina pro tuto událost obdrží argument typu MouseEventArgs.
MouseWheel K této události dochází, když uživatel otočí kolečko myši, zatímco ovládací prvek má fokus. Obslužná rutina pro tuto událost obdrží argument typu MouseEventArgs. Vlastnost MouseEventArgs můžete použít Delta k určení, jak daleko se myš posune.

Změna vstupu myši a zjišťování systémových Nastavení

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í chování kliknutí nebo poklikání, nebo pokud ovládací prvek zpracuje vlastní zpracování myši. Kromě toho třída 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ý může uplynul mezi prvním kliknutím a druhým kliknutím operačního systému zvážit akci myši poklikání.
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.

Viz také