Jeśli chodzi o delegaty polecam ten artykuł Delegaty ponieważ ten delegat który zrobiłeś wyżej nie ma prawa działać. Jest źle napisany i zdefiniowany.
Natomiast jeśli chodzi o rozwiązanie problemu to jeśli dobrze zrozumiałem pytanie. To chcesz mieć kilka przycisków które mają ten sam np przy wywołaniu zdarzenia click. Natomiast w zależności od tekstu na przycisku wywoływał się inny kod. Tak?
Można do tego wykorzystać obiekt sender. Przekazywany jako parametr do funkcji.
Przykład:
private void button1_Click(object sender, EventArgs e)
{
Button button = sender as Button;
switch (button.Text) // w zależności od wduszonego buttona sender wyśle inny tekst
{
case "Jeden":
MessageBox.Show("Jestem Jeden"); // działanie którego oczekujesz
break;
case "Dwa":
MessageBox.Show("Jestem dwa"); // działanie którego oczekujesz
break;
case "Trzy":
MessageBox.Show("Jestem trzy"); // działanie którego oczekujesz
break;
default:
break;
}
}
Oczywiście można dodać też do tego kodu funkcje sprawdzające czy sender to wgl button itp.