【发布时间】:2022-06-14 20:32:44
【问题描述】:
我正在使用 C# 上的 Windows 窗体构建一个跳棋游戏。 板尺寸为 8X8,我有 64 个按钮 - 其中 32 个处于活动状态,其中 32 个处于非活动状态。
我持有一个由 64 个“UpgradedButtons”组成的数组 - Winform 按钮将 [x,y] 作为它们在按钮数组中的位置。
private UpgradedButton[,] m_GameButtons;
for (int i = 0; i < m_GameSize; i++)
{
for (int j = 0; j < m_GameSize; j++)
{
m_GameButtons[i, j] = new UpgradedButton(new Point(i,j));
m_GameButtons[i, j].Location = new Point(left, top);
m_GameButtons[i, j].Size = m_ButtonSize;
left += m_ButtonSize.Width;
if ((i % 2 == 0 && j % 2 == 0) || (i % 2 != 0 && j % 2 != 0))
{
m_GameButtons[i, j].Enabled = false;
}
if ((i < (m_GameSize / 2) - 1) && ((i % 2 == 0 && j % 2 != 0) || (i % 2 != 0 && j % 2 == 0)))
{
m_GameButtons[i, j].Text = "O";
}
else if (i > (m_GameSize / 2) && ((i % 2 == 0 && j % 2 != 0) || (i % 2 != 0 && j % 2 == 0)))
{
m_GameButtons[i, j].Text = "X";
}
Controls.Add(m_GameButtons[i, j]);
}
}
我遇到的问题是当一个键被按下时,我不知道哪个是那个。
我可以用 for 循环扫描我持有的数组,并询问每个按钮“你被按下了吗?如果是,做点什么。”。
但我觉得有比一直询问所有按钮是否被按下更有效的方法。
我在这里错过了什么?
谢谢!
【问题讨论】:
-
提出event