How make one event handler that applies to multiple controls in C#?

Just declare one event handler and point each button at it:

private void Common_MouseHover(object sender, EventArgs e)
{
     Button btn = sender as Button;
     if (btn != null)
         btn.Image = pic
}

Then in code or designer:

button1.MouseHover += Common_MouseHover;
button2.MouseHover += Common_MouseHover;
// .. etc

When you subscribe to the event on a button, it's just a standard event handler:

button1.Click += myEventHandler;

You can use the same code to add handlers for every button:

button1.Click += myEventHandler;
button2.Click += myEventHandler;
button3.Click += myEventHandler;
button4.Click += myEventHandler;
button5.Click += myEventHandler;
button6.Click += myEventHandler;

Tags:

C#

Controls