我想用C#语言开发一个基诺游戏,所以我有80个按钮,每个按钮都有1-80的数字,像这样。
所以我想做的是,每个用户应该选择10个数字(不能少,也不能多),当一个按钮被点击时,按钮的背景颜色就会变成绿色,但我想知道如何在不调用每个按钮的事件的情况下做到这一点。这些数字应该保存在数据库中。
我试过在数组上添加按钮,然后像这样在数组中循环。
var buttons = new[] { button1, button2, button3, button4, button5, ..... };
foreach (var button in buttons)
{
if (button.Focused)
{
button.BackColor = Color.Green;
}
}
你可以为每个按钮分配相同的事件处理程序。
foreach (var button in buttons) {
button.Click += (sender, e) => {
((Button)sender).BackColor = Color.Green;
};
}
如果你想添加到表单上的所有按钮, 你可以在表单构造函数中调用这个。
int counter = 0;
public Form1()
{
InitializeComponent();
foreach (var c in Controls)
{
if (c is Button)
{
((Button)c).Click += (sender, e) =>
{
if (counter >= 10) return;
Button b = (Button)sender;
b.BackColor = Color.Green;
counter += 1;
};
}
}
}