我有10个按钮BUTTON,都是蓝色,被点击的按钮变成红色,其他的还是蓝色?

来源:百度知道 编辑:UC知道 时间:2024/05/24 03:28:26
button1.BackColor = Color.WhiteSmoke;
button2.BackColor = Color.WhiteSmoke;
button3.BackColor = Color.WhiteSmoke;
button6.BackColor = Color.WhiteSmoke;
button4.BackColor = Color.WhiteSmoke;
button7.BackColor = Color.WhiteSmoke;
button8.BackColor = Color.WhiteSmoke;
button9.BackColor = Color.DarkGray;
button10.BackColor = Color.WhiteSmoke;
button11.BackColor = Color.WhiteSmoke;
我不想在每个button里都写这么多。

方法一:可以做成一个方法
ChangeColor(int thisnum)
{
Button bt;
for(int i=1 ;i<12;i++)
{
bt=(Button)this.FindControl("button"+i);
if(i==thisnum)
{
bt.BackColor=要变的颜色;
}
else
{
bt.BackColor=要保持的颜色;
}
}

}
在每个button事件中把不变的颜色号赋给thisnum
button1_OnClick(object sender, EventArg e)
{
ChangeColor(1);
}
button2_OnClick(object sender, EventArg e)
{
ChangeColor(2);
}
.........
方法二:用List<Button>
全局变量: List<Button> list=new List<Button>();
Page_Load事件:list.add(button1);list.add(button2);......
单个click事件:
button1_OnClick(object sender, EventArg e)
{
foreach(Button bt in list)
{
bt.BackColor=保持的颜色;
}
list[0].BackColor=要变的颜色;
}
button2_OnClick(object sender, EventArg e)
{
foreach(Button bt