【发布时间】:2016-08-09 06:39:43
【问题描述】:
我正在C# 中创建一个国际象棋游戏。来自Java-Swing 环境,我创建了一个标准函数,它创建一个8x8 字段并为其赋予基本属性。
Board = new Label[8, 8];
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
Board[i, j] = new System.Windows.Forms.Label();
Board[i, j].Location = new Point(i * 50, j * 50);
Board[i, j].Size = new System.Drawing.Size(50, 50);
Board[i, j].Visible = true;
if ((i + j) % 2 == 0) // Color decision
{
Board[i, j].BackColor = Color.Black;
}
else {
Board[i, j].BackColor = Color.White;
}
this.Controls.Add(Board[i, j]);
}
}
现在有两个额外的数组来保存棋盘外边缘的 abc 和 123(这样您就可以输入像 - “Knight to E3” 这样的移动)。
我已设法将所有组件添加到屏幕上,但它们目前相互重叠。我正在考虑创建一个 9x9“grid-layout”并向其中添加所有组件。
来自Java 我习惯了简单的命令,比如:
GridLayout gl = new Gridlayout(3,3);
this.setLayout(gl);
然后所有添加的元素都会自动放入网格中。
经过数小时的研究,我在C# 中找不到类似的东西。玩TableLayout 只会导致比解决方案更多的问题。
我的问题是如何实现 (grid) layout 并将我的所有标签添加到其中?
对于没有发布我的任何布局代码,我提前道歉,但就像我说的那样,这只是一团糟,没有做任何应该做的事情。
谢谢你:)
【问题讨论】:
标签: c# winforms layout tablelayout