Cześć. Tak się zastanawiam, czy:
Mając wiele Buttonów w programie, np Button1, Button2, Button3 [...] Button40 - chcąc stworzyć do każdego metodę, klikam sobie na każdego z nich i pojawiają mi się nowe metody gotowe do wklepania kodu do nich:
private void button1_Click(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
}
// i więcej
Czy da się to zastąpić jedną metodą z argumentem? Np:
private void buttonXX_Click(object sender, int argument)
{
if (argument == 1) ; // coś tam
if (argument == 2) ; // co innego
}
Kombinowałem z modyfikatorami private/public, wywalałem "object sender" z nawiasów, niestety nie wiem jak to zastosować. W Properties każdego komponentu nie mam możliwości wybrania tej metody z wprowadzeniem argumentu do Properties np: buttonXX_Click(1). A jeśli nie ma takiej możliwości, czy da się to wywalić do osobnej klasy w osobnym pliku? Proszę o pomoc
EDIT: po dalszym szukaniu rozwiązania na google udało mi się znaleźć coś takiego, co działa:
private void buttonXX_Click(object sender, EventArgs e)
{
string button = (sender as Button).Name.ToString();
if (button == "button1") MessageBox.Show("Kliknięto button1");
if (button == "button2") MessageBox.Show("Kliknięto button2");
if (button == "button3") MessageBox.Show("Kliknięto button3");
}