我試圖動態地創建一個按鈕數組,我不能完全弄清楚我如何讓一個函數知道哪個按鈕實際上被按下..我試過這種方式,但它似乎並沒有工作。有任何想法嗎?按鈕陣列 - 哪一個被按下? c#
public void game_setup(int columns, int rows, int mines)
{
//game_destroy();
//Set Window Size
this.Height = 50 + Options.y_ini + rows * (Options.size + Options.space);
this.Width = 20 + 2 * Options.x_ini + columns * (Options.size + Options.space);
//Setup the playing field
Button[,] field = new Button[columns,rows];
for (int i = 0; i < columns; i++)
{
for (int j = 0; j < rows; j++)
{
field[i, j] = new Button();
//Button Size
field[i, j].Width = Options.size;
field[i, j].Height = Options.size;
//Button Position
int x = Options.x_ini + i * (Options.size + Options.space);
int y = Options.y_ini + j * (Options.size + Options.space);
field[i, j].Location = new Point(x, y);
//Event Handler
int send_i = i;
int send_j = j;
field[i, j].Click += (sender, args) =>
{
field_Click(send_i, send_j);
};
//Add the Button to the GameBoard
Controls.Add(field[i, j]);
}
}
//Distribute the Mines
//...
}
public void field_Click(int x, int y)
{
MessageBox.Show("X:" + x + " Y:" + y);
field[1, 2].Text = "hi";
}
這聽起來像是我的問題的解決方案,是的。但我害怕我沒有太多的問題賴特.. 我需要能夠訪問此方法中的所有字段[x,y] s。有沒有辦法做到這一點? – Timme
即我想知道我按下了哪個按鈕(字段[1,2]作爲示例) 然後執行一些操作將它與其他字段[]進行比較。 – Timme
@Timme你需要使'field'變量成爲一個類變量。因爲那樣它就可以被類中的所有方法訪問。 – Kami