Here is the code i just knocked up for doing this.
In my example i have a panel on the form which contains the buttons.
All the buttons.Click events point to the same click function;
private void button_Click(object sender, EventArgs e)
foreach (Control c in panel1.Controls)
c.BackColor = Color.DimGray;
Control o = (Control)sender;
o.BackColor = Color.Green;
When a button is clicked, all the buttons are reset to the same color, then the button that was clicked has its colour changed.