Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Większość programów Windows Forms przetwarza wprowadzanie myszy przez obsługę zdarzeń myszy. Ten artykuł zawiera omówienie zdarzeń myszy, w tym szczegółowe informacje na temat tego, kiedy należy używać każdego zdarzenia i danych dostarczonych dla każdego zdarzenia. Aby uzyskać więcej informacji o zdarzeniach ogólnych, zobacz Omówienie zdarzeń.
Zdarzenia myszy
Podstawowym sposobem reagowania na dane wejściowe myszy jest obsługa zdarzeń myszy. W poniższej tabeli przedstawiono zdarzenia myszy i opisano, kiedy są one wywoływane.
| Zdarzenie myszy | Opis |
|---|---|
| Click | To zdarzenie występuje, gdy przycisk myszy jest zwalniany, zazwyczaj przed zdarzeniem MouseUp. Obsługa tego zdarzenia otrzymuje argument typu EventArgs. Obsłuż to zdarzenie, gdy musisz określić tylko, kiedy nastąpi kliknięcie. |
| MouseClick | To zdarzenie występuje, gdy użytkownik kliknie kontrolkę myszą. Obsługa tego zdarzenia otrzymuje argument typu MouseEventArgs. Obsłuż to zdarzenie, gdy musisz uzyskać informacje o myszy po kliknięciu. |
| DoubleClick | To zdarzenie występuje po dwukrotnym kliknięciu kontrolki. Obsługa tego zdarzenia otrzymuje argument typu EventArgs. Obsłuż to zdarzenie, gdy tylko musisz określić, kiedy występuje dwukrotne kliknięcie. |
| MouseDoubleClick | To zdarzenie występuje, gdy użytkownik dwukrotnie kliknie kontrolkę myszą. Obsługa tego zdarzenia otrzymuje argument typu MouseEventArgs. Zajmij się tym zdarzeniem, gdy musisz uzyskać informacje o myszy po dwukrotnym kliknięciu. |
| MouseDown | To zdarzenie występuje, gdy wskaźnik myszy jest nad kontrolką, a użytkownik naciska przycisk myszy. Obsługa tego zdarzenia otrzymuje argument typu MouseEventArgs. |
| MouseEnter | To zdarzenie występuje, gdy wskaźnik myszy przechodzi do obramowania lub obszaru klienta kontrolki, w zależności od typu kontrolki. Obsługa tego zdarzenia otrzymuje argument typu EventArgs. |
| MouseHover | To zdarzenie występuje, gdy wskaźnik myszy zatrzymuje się i spoczywa na kontrolce. Obsługa tego zdarzenia otrzymuje argument typu EventArgs. |
| MouseLeave | To zdarzenie występuje, gdy wskaźnik myszy opuszcza obramowanie lub obszar roboczy kontrolki, zależnie od typu kontrolki. Obsługa tego zdarzenia otrzymuje argument typu EventArgs. |
| MouseMove | To zdarzenie występuje, gdy wskaźnik myszy przesuwa się, gdy znajduje się on nad kontrolką. Obsługa tego zdarzenia otrzymuje argument typu MouseEventArgs. |
| MouseUp | To zdarzenie występuje, gdy wskaźnik myszy jest nad kontrolką, a użytkownik zwalnia przycisk myszy. Obsługa tego zdarzenia otrzymuje argument typu MouseEventArgs. |
| MouseWheel | To zdarzenie występuje, gdy użytkownik obraca koło myszy, gdy kontrolka ma fokus. Obsługa tego zdarzenia otrzymuje argument typu MouseEventArgs. Użyj właściwości , MouseEventArgs.Delta aby określić, jak daleko przewija się mysz. |
Informacje o myszach
MouseEventArgs jest wysyłany do obsługujących zdarzenia związanych z kliknięciem przycisku i śledzeniem ruchu myszy. MouseEventArgs zawiera informacje o bieżącym stanie myszy, w tym lokalizację wskaźnika myszy we współrzędnych okna, naciśnięte przyciski myszy oraz to, czy kółko myszy zostało przewinięte. Kilka zdarzeń myszy, takich jak te, które zachodzą, gdy wskaźnik myszy wszedł lub opuścił granice kontrolki, wysyłają EventArgs do programu obsługi zdarzeń bez dalszych informacji.
Jeśli chcesz poznać bieżący stan przycisków myszy lub lokalizację wskaźnika myszy i chcesz uniknąć obsługi zdarzenia myszy, możesz również użyć właściwości MouseButtons i MousePosition klasy Control. MouseButtons zwraca informacje o tym, które przyciski myszy są obecnie naciskane. MousePosition zwraca współrzędne ekranu wskaźnika myszy i jest równoważne wartości zwracanej przez Position.
Konwertowanie współrzędnych ekranu i klienta
Ponieważ niektóre informacje o lokalizacji myszy są we współrzędnych klienta, a niektóre we współrzędnych ekranu, może być konieczne przekształcenie punktu z jednego układu współrzędnych na drugi. Można to łatwo zrobić przy użyciu metod PointToClient i PointToScreen dostępnych w klasie Control.
Zachowanie standardowego zdarzenia kliknięcia
Jeśli chcesz obsługiwać zdarzenia kliknięcia myszy w odpowiedniej kolejności, musisz znać kolejność, w jakiej zdarzenia kliknięć są wywoływane w kontrolkach Windows Forms. Wszystkie kontrolki Windows Forms zgłaszają zdarzenia kliknięcia w tej samej kolejności, gdy dowolny obsługiwany przycisk myszy jest naciśnięty i zwalniany, z wyjątkiem sytuacji, w których zaznaczono na poniższej liście poszczególnych kontrolek. Na poniższej liście przedstawiono kolejność zdarzeń zgłoszonych dla jednego kliknięcia przycisku myszy:
- MouseDown zdarzenie.
- Click zdarzenie.
- MouseClick zdarzenie.
- MouseUp zdarzenie.
Poniżej przedstawiono kolejność zdarzeń wywoływanych dla dwukrotnego kliknięcia przycisku myszy:
MouseDown zdarzenie.
Click zdarzenie.
MouseClick zdarzenie.
MouseUp zdarzenie.
MouseDown zdarzenie.
DoubleClick zdarzenie.
Może się to różnić w zależności od tego, czy w danej kontrolce ustawiono bit stylu StandardDoubleClick na wartość
true. Aby uzyskać więcej informacji na temat ustawiania bitów, zobacz metodę ControlStylesSetStyle .MouseDoubleClick zdarzenie.
MouseUp zdarzenie.
Poszczególne kontrolki
Następujące kontrolki nie są zgodne ze standardowym zachowaniem zdarzenia kliknięcia myszy:
-
Uwaga / Notatka
W przypadku kontrolki ComboBox zachowanie zdarzenia opisane później występuje, jeśli użytkownik kliknie pole edycji, przycisk lub element na liście.
- Kliknij lewym przyciskiem myszy: Click, MouseClick
- Kliknięcie prawym przyciskiem myszy: brak zgłoszonych zdarzeń kliknięcia
- Kliknij dwukrotnie lewym przyciskiem myszy: Click, ; MouseClickClick,MouseClick
- Dwukrotne kliknięcie prawym przyciskiem myszy: brak wywołanych zdarzeń kliknięcia
kontrolki TextBox, RichTextBox, ListBox, MaskedTextBoxi CheckedListBox
Uwaga / Notatka
Zachowanie zdarzenia opisane później występuje, gdy użytkownik kliknie w dowolnym miejscu tych kontrolek.
- Kliknij lewym przyciskiem myszy: Click, MouseClick
- Kliknięcie prawym przyciskiem myszy: brak zgłoszonych zdarzeń kliknięcia
- Kliknij dwukrotnie lewym przyciskiem myszy: Click, , MouseClick, DoubleClickMouseDoubleClick
- Dwukrotne kliknięcie prawym przyciskiem myszy: brak wywołanych zdarzeń kliknięcia
kontrolka ListView
Uwaga / Notatka
Zachowanie zdarzenia opisane później występuje tylko wtedy, gdy użytkownik kliknie na elementy w kontrolce ListView. Żadne zdarzenia nie są wywoływane dla kliknięć w dowolnym miejscu w kontrolce. Oprócz opisanych w dalszej części zdarzeń występują zdarzenia BeforeLabelEdit i AfterLabelEdit, które mogą cię zainteresować, jeśli chcesz użyć walidacji z kontrolą ListView.
- Kliknij lewym przyciskiem myszy: Click, MouseClick
- Kliknij prawym przyciskiem myszy: Click, MouseClick
- Kliknij dwukrotnie lewym przyciskiem myszy: Click, ; MouseClickDoubleClick,MouseDoubleClick
- Kliknij dwukrotnie prawym przyciskiem myszy: Click, ; MouseClickDoubleClick,MouseDoubleClick
kontrolka TreeView
Uwaga / Notatka
Zachowanie zdarzenia opisane później występuje tylko wtedy, gdy użytkownik kliknie na same elementy lub na prawo od elementów w kontrolce TreeView. Żadne zdarzenia nie są wywoływane dla kliknięć w dowolnym miejscu w kontrolce. Oprócz opisanych w dalszej części tego artykułu istnieją BeforeCheck, BeforeSelect, BeforeLabelEdit, AfterSelect, AfterChecki zdarzenia AfterLabelEdit, które mogą cię zainteresować, jeśli chcesz użyć walidacji z kontrolką TreeView.
- Kliknij lewym przyciskiem myszy: Click, MouseClick
- Kliknij prawym przyciskiem myszy: Click, MouseClick
- Kliknij dwukrotnie lewym przyciskiem myszy: Click, ; MouseClickDoubleClick,MouseDoubleClick
- Kliknij dwukrotnie prawym przyciskiem myszy: Click, ; MouseClickDoubleClick,MouseDoubleClick
Renderowanie wyglądu kontrolek przełącznika
Przełączane kontrolki, takie jak kontrolki pochodzące z klasy ButtonBase, mają następujące charakterystyczne zachowanie renderowania w połączeniu ze zdarzeniami kliknięcia myszy:
Użytkownik naciska przycisk myszy.
Kontrolka wyświetla się w stanie naciśniętym.
Zdarzenie MouseDown jest zgłaszane.
Użytkownik zwalnia przycisk myszy.
Kontrolka jest wyświetlana w stanie podniesionym.
Zdarzenie Click jest zgłaszane.
Zdarzenie MouseClick jest zgłaszane.
Zdarzenie MouseUp jest zgłaszane.
Uwaga / Notatka
Jeśli użytkownik przenosi wskaźnik z kontrolki przełącznika, gdy przycisk myszy jest przytrzymany (na przykład przesuwanie myszy z Button kontrolki, gdy jest naciśnięty), przełącznik kontrolki jest wizualnie przedstawiany w stanie podniesionym i występuje jedynie zdarzenie MouseUp. Zdarzenia Click lub MouseClick nie wystąpią w tej sytuacji.
Zobacz także
.NET Desktop feedback