Windows.Forms - dynamiczne wykrywanie klikniętego elementu

0

Witam.
Załóżmy, że mam funkcję, która jest wykonywana po naciśnięciu przycisku:

private void button_Click(object sender, EventArgs e)
{
//wykonaj coś tam
}

Później wpadłem na pomysł żeby funkcja ta była wykonywana po kliknięciu nie tylko tego buttona ale także innych elementów formy.
I tutaj nie ma problemu.

Mam zagwozdkę bo chciałbym przekazać do tej funkcji pewne dane "wyciągnięte" z konkretnego, klikniętego elementu a sender jest bardzo oszczędny w tych informacjach.
Np. niezależnie od tego, który button został kliknięty dostaję info, że jest to Button i tekst, który jest na nim wyświetlony:

System.Windows.Forms.Button, Text: tekst na buttonie

Czy tylko i wyłącznie z tych danych mogę skorzystać żeby wiedzieć co konkretnie zostało kliknięte (w założeniu nie będzie to tylko button)?
Gdzie się podział Name ;) ?

Będę wdzięczny za jakąś sugestię...
Pozdro

0

Sender jest w zupełności wystarczający - rzutuj go na typ Button.

Button btn = sender as Button;
if(btn != null)
{
//kod
}
0

Lepiej rzutować na typ Control jeśli funkcję maja wywoływać również inne elementy formy - też będzie dostęp do Name.

0

...przecież to takie proste ;)
Działa. Dzięki

P.S. - dla podobnych do mnie laików
Rzutując na typ Control działamy na - ogólnie rzecz biorąc - kontrolce.
Button jest kontrolką więc rzutując na ten akurat typ zawężamy pole działania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1