Události myši ve Windows Forms

Při zpracování vstupu myši obvykle chcete znát umístění ukazatele myši a stav tlačítek myši. Toto téma obsahuje podrobnosti o tom, jak získat tyto informace z událostí myši a vysvětluje pořadí událostí kliknutí myší v ovládacích prvcích model Windows Forms. Seznam a popis všech událostí myši naleznete v tématu Jak funguje vstup myši v model Windows Forms. Viz také přehled obslužných rutin událostí (model Windows Forms) a přehled událostí (model Windows Forms).

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é jednoduše upozorňují, 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 MousePositionControl . 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 model Windows Forms ovládací prvky vyvolávají události kliknutí ve stejném pořadí, když je tlačítko myši stisknuto a uvolněno (bez ohledu na to, které 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:

  1. MouseDown Událost.

  2. Click Událost.

  3. MouseClick Událost.

  4. MouseUp Událost.

Toto je pořadí událostí vyvolaných pro dvojité kliknutí na tlačítko myši:

  1. MouseDown Událost.

  2. Click Událost.

  3. MouseClick Událost.

  4. MouseUp Událost.

  5. MouseDown Událost.

  6. DoubleClick Událost. (Tato možnost se může lišit v závislosti na tom, jestli má daný StandardDoubleClick ovládací prvek nastavený bit stylu na truehodnotu . Další informace o tom, jak nastavit ControlStyles bit, naleznete v SetStyle metodě.)

  7. MouseDoubleClick Událost.

  8. MouseUp Událost.

Příklad kódu, který ukazuje pořadí událostí kliknutí myší, viz Postupy: Zpracování událostí vstupu uživatele v ovládacích prvcích model Windows Forms.

Jednotlivé ovládací prvky

Následující ovládací prvky neodpovídají standardnímu chování události kliknutí myší:

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:

  1. Uživatel stiskne tlačítko myši.

  2. Ovládací prvek se vykreslí ve stisknutém stavu.

  3. Událost MouseDown je vyvolána.

  4. Uživatel uvolní tlačítko myši.

  5. Ovládací prvek se vykreslí ve vyvýšeném stavu.

  6. Událost Click je vyvolána.

  7. Událost MouseClick je vyvolána.

  8. 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é