Použití událostí myši (model Windows Forms .NET)
Většina model Windows Forms programů zpracovává vstup myši zpracováním událostí myši. Tento článek obsahuje přehled událostí myši, včetně podrobností o tom, kdy použít každou událost a data zadaná pro každou událost. Další informace o událostech obecně naleznete v tématu Přehled událostí (model Windows Forms .NET).
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. |
Informace o myši
Do obslužných rutin událostí myši souvisejících s kliknutím na tlačítko myši a sledováním pohybu myši se odešle klávesa A MouseEventArgs . MouseEventArgs poskytuje informace o aktuálním stavu myši, včetně umístění ukazatele myši v souřadnicích klienta, která tlačítka myši jsou stisknuta a zda se kolečko myši posune. Několik událostí myši, například těch, které jsou vyvolány, když ukazatel myši vstoupil nebo opustil hranice ovládacího prvku, odešle EventArgs obslužné rutině události bez dalších informací.
Pokud chcete znát aktuální stav tlačítek myši nebo umístění ukazatele myši a chcete se vyhnout zpracování události myši, můžete také použít MouseButtons vlastnosti třídy MousePosition Control . MouseButtons vrátí informace o tom, která tlačítka myši jsou aktuálně stisknuta. Vrátí MousePosition souřadnice obrazovky ukazatele myši a je ekvivalentní hodnotě Positionvrácené .
Převod mezi obrazovkovými a klientskými souřadnicemi
Protože některé informace o poloze myši jsou v souřadnicích klienta a některé jsou v souřadnicích obrazovky, může být nutné převést bod z jednoho souřadnicového systému na druhý. Můžete to provést snadno pomocí PointToClient a PointToScreen metod dostupných ve Control třídě.
Chování události standardního kliknutí
Pokud chcete zpracovat události kliknutí myší ve správném pořadí, musíte znát pořadí, ve kterém jsou události kliknutí vyvolány v ovládacích prvcích model Windows Forms. Všechny ovládací prvky model Windows Forms vyvolávají události kliknutí ve stejném pořadí, když je stisknuto a uvolněno jakékoli podporované tlačítko myši, s výjimkou místa, kde je uvedeno v následujícím seznamu pro jednotlivé ovládací prvky. Následující seznam ukazuje pořadí událostí vyvolaných jedním kliknutím na tlačítko myši:
- MouseDown událost.
- Click událost.
- MouseClick událost.
- MouseUp událost.
Toto je pořadí událostí vyvolaných pro dvojité kliknutí na tlačítko myši:
MouseDown událost.
Click událost.
MouseClick událost.
MouseUp událost.
MouseDown událost.
DoubleClick událost.
To se může lišit v závislosti na tom, zda má daný StandardDoubleClick ovládací prvek nastaven styl bit na
true
hodnotu . Další informace o tom, jak nastavit ControlStyles bit, naleznete v metodě SetStyle .MouseDoubleClick událost.
MouseUp událost.
Jednotlivé ovládací prvky
Následující ovládací prvky neodpovídají standardnímu chování události kliknutí myší:
-
Poznámka:
ComboBox U ovládacího prvku se chování události podrobně popisuje později, pokud uživatel klikne na pole pro úpravy, tlačítko nebo na položku v seznamu.
- Levé kliknutí: Click, MouseClick
- Kliknutí pravým tlačítkem myši: Nevyvolá se žádné události kliknutí
- Levým poklikáním:Click , MouseClick, ClickMouseClick
- Poklikání pravým tlačítkem myši: Nevyvolá se žádné události kliknutí
TextBox, , RichTextBoxListBox, MaskedTextBox, a CheckedListBox ovládací prvky
Poznámka:
Chování události podrobně popsané později nastane, když uživatel klikne kamkoli do těchto ovládacích prvků.
- Levé kliknutí: Click, MouseClick
- Kliknutí pravým tlačítkem myši: Nevyvolá se žádné události kliknutí
- Levým poklikáním:Click , MouseClickDoubleClick,MouseDoubleClick
- Poklikání pravým tlačítkem myši: Nevyvolá se žádné události kliknutí
Ovládací prvek ListView
Poznámka:
Chování události podrobně popsané později nastane pouze v případě, že uživatel klikne na položky v ovládacím ListView prvku. Nejsou vyvolány žádné události pro kliknutí kdekoli jinde v ovládacím prvku. Kromě událostí popsaných později existují BeforeLabelEdit události a AfterLabelEdit události, které vás mohou zajímat, pokud chcete s ovládacím ListView prvek použít ověření.
- Levé kliknutí: Click, MouseClick
- Kliknutí pravým tlačítkem myši: Click, MouseClick
- Levým poklikáním:Click , MouseClick, DoubleClickMouseDoubleClick
- Poklikejte pravým tlačítkem myši: Click, MouseClick, DoubleClickMouseDoubleClick
Ovládací prvek TreeView
Poznámka:
Chování události podrobně popsané později nastane pouze v případě, že uživatel klikne na samotné položky nebo napravo od položek v ovládacím TreeView prvku. Nejsou vyvolány žádné události pro kliknutí kdekoli jinde v ovládacím prvku. Kromě těch, které jsou popsány později, existují BeforeCheckudálosti , , AfterSelectBeforeSelectAfterCheckBeforeLabelEdit, a AfterLabelEdit události, které vás mohou zajímat, pokud chcete použít ověřování s ovládacím TreeView prvku.
- Levé kliknutí: Click, MouseClick
- Kliknutí pravým tlačítkem myši: Click, MouseClick
- Levým poklikáním:Click , MouseClick, DoubleClickMouseDoubleClick
- Poklikejte pravým tlačítkem myši: Click, MouseClick, DoubleClickMouseDoubleClick
Malování chování přepínacích ovládacích prvků
Přepínací ovládací prvky, například ovládací prvky odvozené z ButtonBase třídy, mají v kombinaci s událostmi kliknutí myší následující výrazné chování obrazu:
Uživatel stiskne tlačítko myši.
Ovládací prvek se vykreslí ve stisknutém stavu.
Událost MouseDown je vyvolána.
Uživatel uvolní tlačítko myši.
Ovládací prvek se vykreslí ve vyvýšeném stavu.
Událost Click je vyvolána.
Událost MouseClick je vyvolána.
Událost MouseUp je vyvolána.
Poznámka:
Pokud uživatel přesune ukazatel mimo ovládací prvek přepínacího tlačítka, zatímco je tlačítko myši mimo (například přesunutí myši mimo Button ovládací prvek při stisknutí), ovládací prvek přepínacího tlačítka se vykreslí ve vyvýšeném stavu a dojde pouze k MouseUp události. MouseClick V Click této situaci nedojde k událostem.
Viz také
.NET Desktop feedback