我正在为一项大学作业开发一款游戏,需要在点击按钮时执行一个 Action ,但这比这更复杂。
我已经创建了一个包含 100 个按钮 (10x10) 的二维数组来创建一个平铺的、可点击的界面(这是项目简介的要求,所以我绝对不能更改此方法)。每个按钮被随机分配一个特定的 BackgroundImage 来组成一个冒险 map (草、水、树、矿石等),如果它们有特定的 BackgroundImage 并被点击(树木或矿石),我需要将金币添加到玩家的他们“收集”元素的黄金值(value)。
按钮数组是这样生成的:
Button[,] btn = new Button[10, 10];
for (int x = 0; x < 10; x++)
{
for (int y = 0; y < 10; y++)
{
btn[x, y] = new Button();
btn[x, y].SetBounds((x * 50) + 8, (y * 50) + 16, 50, 50);
btn[x, y].Name = x + "," + y;
Controls.Add(btn[x, y]);
}
}
我如何才能检测到何时单击了这些按钮之一,并能够根据应用到它的 BackgroundImage 采取相应的行动?
最佳答案
您可以像这样将相同的事件处理程序附加到所有按钮:
btn[x, y].Click += btnClick;
而且,在您的 btnClick
中,您可以获得点击的按钮,您可以做任何您想做的事情:
public void btnClick(object sender, EventArgs e)
{
Button myButton = sender as Button;
myButton.BackgroundImage = ...
}
关于c# - 检查数组中的按钮是否被点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21322723/