单击按钮阵列中的按钮

时间:2014-01-21 02:40:08

标签: c# winforms

我有以下代码。

public void WepaonEquip(Object sender, System.EventArgs e)
{
if (button[0].BackColor == Color.Beige)
{
    button[0].BackColor = Color.OrangeRed;
}

else if (button[1].BackColor == Color.Beige)
{
    button[1].BackColor = Color.OrangeRed;
}

else if (button[2].BackColor == Color.Beige)
{
    button[2].BackColor = Color.OrangeRed;
}
}

包含此代码块的类中的代码生成一个按钮数组。我想要的是用户将点击一个按钮,点击按钮的颜色将会改变。

然而,当用户点击(比方说)第3个按钮时,数组中的第一个按钮会改变颜色,而不是单击的按钮。知道为什么这不起作用吗?我相信代码的逻辑可行,也许我错过了一些东西。

1 个答案:

答案 0 :(得分:3)

设置面板中的每个按钮以使用相同的Click事件处理程序。在处理程序中将发件人转换为按钮并更改颜色

假设WeaponEquip是按钮的click事件处理程序,它看起来像这样:

public void WepaonEquip(Object sender, System.EventArgs e)
{
    Button clickedbutton = (Button)sender
    clickedbutton.BackColor = Color.OrangeRed;

}