我有以下代码。
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个按钮时,数组中的第一个按钮会改变颜色,而不是单击的按钮。知道为什么这不起作用吗?我相信代码的逻辑可行,也许我错过了一些东西。
答案 0 :(得分:3)
设置面板中的每个按钮以使用相同的Click事件处理程序。在处理程序中将发件人转换为按钮并更改颜色
假设WeaponEquip是按钮的click事件处理程序,它看起来像这样:
public void WepaonEquip(Object sender, System.EventArgs e)
{
Button clickedbutton = (Button)sender
clickedbutton.BackColor = Color.OrangeRed;
}