Použití událostí myši

Většina programů Windows Forms 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í.

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 zobrazuje události myši a popisuje, kdy jsou vyvolávány.

Událost myši v počítači Popis
Click K této události dochází při uvolnění tlačítka myši, obvykle před událostí MouseUp . Obsluha 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ší. Obsluha 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ž dojde k dvojitému kliknutí na ovládací prvek. Obsluha 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ší. Obsluha 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. Obsluha 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. Obsluha pro tuto událost obdrží argument typu EventArgs.
MouseHover K této události dochází, když se ukazatel myši zastaví a spočine nad ovládacím prvkem. Obsluha 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. Obsluha pro tuto událost obdrží argument typu EventArgs.
MouseMove K této události dochází, když se ukazatel myši pohne nad ovládacím prvkem. Obsluha 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. Obsluha 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. Obsluha pro tuto událost obdrží argument typu MouseEventArgs. MouseEventArgs.Delta Pomocí vlastnosti určete, jak daleko se posunuje myš.

Informace o myši

MouseEventArgs se odešle obslužným funkcím událostí myši souvisejících s kliknutím na tlačítko myši a sledováním pohybu myši. 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 a MousePosition vlastnosti třídy Control. MouseButtons vrátí informace o tom, která tlačítka myši jsou aktuálně stisknuta. MousePosition vrátí souřadnice obrazovky ukazatele myši a odpovídá hodnotě vrácené Position.

Převod mezi obrazovkovými a klientskými souřadnicemi

Vzhledem k tomu, že informace o umístění 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 snadno provést pomocí PointToClient a PointToScreen metod dostupných ve třídě Control.

Chování standardní události 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 Windows Forms. Všechny ovládací prvky Windows Forms vyvolávají události kliknutí ve stejném pořadí, když je stisknuto a vydá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:

  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.

    To se může lišit v závislosti na tom, zda má daný StandardDoubleClick ovládací prvek nastaven bit stylu na true hodnotu. Další informace o tom, jak nastavit ControlStyles bit, naleznete v metodě SetStyle .

  7. MouseDoubleClick událost.

  8. MouseUp událost.

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 třídy ButtonBase, mají v kombinaci s událostmi kliknutí myší následující výrazné chování během vykreslování:

  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 stisknuto (například přemístění myši mimo Button ovládací prvek během stisknutí), přepínací ovládací prvek se vykreslí ve vyvýšeném stavu a dojde pouze k události MouseUp. Click nebo MouseClick události v této situaci nenastanou.

Viz také