C#.NET - własna metoda obsługująca zdarzenie

C#.NET - własna metoda obsługująca zdarzenie
  • Rejestracja: dni
  • Ostatnio: dni
0

Cześć

Chciałbym zapytać się was o własną metodę, która ma wykonać się podczas gdy na button najedzie się myszką w własnym GUI. Przycisków ma być 3 i nie warto tworzyć 3 eventów a chce 1 do 3 buttonów. Czy mogę prosić o wskazówki?

Pozdrawiam

dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
1
Kopiuj
button1.MouseOver += MouseOverHandler;
button2.MouseOver += MouseOverHandler;
button3.MouseOver += MouseOverHandler; 

lub w designerze tam gdzie masz eventy w comboboxie wybierasz dla każdego buttona ten sam handler.

Riw
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdynia
  • Postów: 201
0
dam1an napisał(a):
Kopiuj
button1.MouseOver += MauseOverHandler;
button2.MouseOver += MauseOverHandler;
button3.MouseOver += MauseOverHandler; 

lub w designerze tam gdzie masz eventy w comboboxie wybierasz dla każdego buttona ten sam handler.

Designer jest przereklamowany lepiej ręcznie napisać.

  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki

A, jak mogę rozpoznać, który z buttonów dostał zdarzenie?

dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
2
Kopiuj
MouseOverHandler(object sender, EventArgs e) //sender to to obiekt który wywołał zdarzenie
{
    Button btn = sender as Button;//i masz swój button
}
  • Rejestracja: dni
  • Ostatnio: dni
0

Dziękuje

A tak właściwie to jakie są standardy tworzenia całego programu? Pisze się raczej GUI + eventy ręcznie czy poprzez designer? Czy macie jakąś stronę godną polecenia aby o tym poczytać?

dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
2

Ja bym to robił w designerze, nie wiem skąd u @Riw ten uraz. Ewentualnie jak chcesz o czymś poczytać to o MVP.

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
3

Designer jest dobry, a kiedyś był jeszcze lepszy.
Mam tu na myśli sytuację, w której chcemy usunąć handler ze zdarzenia.

Zazwyczaj po prostu kasowałem metodę, a potem wchodziłem do designera wyczyścić pole z nazwą tej metody.
Niestety, od którejś wersji (2012?) nie można tego robić w tej kolejności, bo designer przy otwarciu bardzo się obraża że brakuje mu tej metody i wyświetla głupi komunikat, zamiast pozwolić naprawić - i trzeba się ręcznie przekopywać przez wygenerowany kod. Zmiana na minus.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.