我创建了一个由4x4网格组成的游戏。当玩家获胜时,我想通过将网格扩展到10x10来使游戏变得更难。
我通过添加以下内容使表单更大:
this.Size = new Size(1375, 1375);
tableLayoutPanel调整自身大小,因为它的Dock属性设置为fill。
然后我将行数和列数更改为10:
this.tableLayoutPanel1.RowCount = 10;
this.tableLayoutPanel1.ColumnCount = 10;
我希望每个单元格占用10%的空间,所以我尝试了:
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10F));
但它不起作用:之前存在的列和行保持其大小,一个新行和一个新列占用剩余空间,其余的不占用任何空间空间。
那么如何重置前一个单元格的大小并使每个单元格占用10%的空间呢?
答案 0 :(得分:1)
您需要先清除样式:
this.tableLayoutPanel1.RowStyles.Clear();
this.tableLayoutPanel1.ColumnStyles.Clear();
整个代码如下所示:
this.Size = new Size(1375, 1375);
this.tableLayoutPanel1.RowCount = 10;
this.tableLayoutPanel1.ColumnCount = 10;
this.tableLayoutPanel1.RowStyles.Clear();
this.tableLayoutPanel1.ColumnStyles.Clear();
for (int i = 1; i <= this.tableLayoutPanel1.RowCount; i++)
{
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 1));
}
for (int i = 1; i <= this.tableLayoutPanel1.ColumnCount; i++)
{
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 1));
}