Mam mały formularz z niektórymi polami wyboru, a dla każdego z pól wyboru dla zdarzenia CheckChanged
znajduje się program obsługi wiadomości. Ponieważ niektóre pola wyboru zależą od innych, jeśli zmieni się stan jednego z pól wyboru, zmienia on zaznaczony stan dowolnych zależnych pól wyboru. Odkryłem, że powoduje to podniesienie zdarzeń w innych polach wyboru, ale moim problemem jest to, że każde zdarzenie ma jedno wywołanie funkcji, które powinno być wywołane tylko wtedy, gdy zdarzenie pochodzi od użytkownika, który faktycznie kliknął to pole wyboru. Chciałbym wiedzieć, jak powiedzieć (prawdopodobnie od nadawcy lub od EventArgs
), czy zdarzenie CheckChanged
zostało spowodowane kliknięciem myszy, czy nie.Jak stwierdzić, czy zdarzenie pochodzi z danych wprowadzonych przez użytkownika w języku C#?
Cliffs:
- Wiele pól wyboru otrzymujących
CheckChanged
zdarzenie - należy ustalić, czy zdarzenie zostało podniesione przez kliknięcie myszą lub nie
Co gdy używają klawiszy Tab i przestrzeni do poruszania się i wyboru? Postaram się rozwiązać twoją logikę, zanim zdecyduję się na przełamanie metod wprowadzania danych. –
Prawdopodobnie odłączę obsługę zdarzeń dla zmiany, a następnie ponownie je połączę. – spender
Czy możesz nam powiedzieć, dlaczego chciałbyś wiedzieć, czy to była mysz, której użyli? To może nam pomóc. Niemal we wszystkich przypadkach mogę pomyśleć, że nie ma to znaczenia ... – Penfold