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í GetStyle SetStyle 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é
.NET Desktop feedback