我正在寻找optymalize代码,在按钮上显示2维数组值。 我创建了这样的按钮网格: http://screenshot.sh/m2eZscO4i0fXq 我实际上是使用以下代码在这个按钮上显示数组的值:
button1.Text = board.gameBoard[0, 0].getValue().ToString();
button2.Text = board.gameBoard[0, 1].getValue().ToString();
button3.Text = board.gameBoard[0, 2].getValue().ToString();
button4.Text = board.gameBoard[0, 3].getValue().ToString();
button5.Text = board.gameBoard[1, 0].getValue().ToString();
...
button15.Text = board.gameBoard[3, 2].getValue().ToString();
button16.Text = board.gameBoard[3, 3].getValue().ToString();
有更简单的方法吗?它现在正在工作(http://screenshot.sh/mMDP9pvcC7WOk),但这不是我认为做这件事的最好方法。有人能告诉我这样做有多好吗?
答案 0 :(得分:0)
您可以动态创建按钮,并在创建过程中将文字放入您想要的Button.Text
。
这将是:
// array of your buttons (it's not necessary)
var buttons = new Button[4,4];
void SomeMethod()
{
for(var x = 0; x < 4; x++)
{
for(var y = 0; y < 4; y++)
{
var newButton = new Button();
// put your text into the button
newButton.Text = board.gameBoard[x, y].getValue().ToString();
// set the coordinates for your button
newButton.Location = new Point(someCoordinateX, someCoordinateY);
// store just created button to the array
buttons[x, y] = newButton;
// add just created button to the form
this.Controls.Add(newButton).
}
}
}
然后,在初始化步骤的某处使用此方法来创建和初始化按钮。如果您需要以某种方式修改按钮,最近可以使用buttons
数组。
希望它会有所帮助。