一开始,TableLayoutPanel只有一行而没有列。通过按下按钮,我希望使用 5行3列转换此面板。
TRUE
问题是你得到了这个结果!
使用行和列创建的框在面板中不包含相同的区域,如您所见。
在3列和5行的情况下,列必须共享tablelayoutpanel的100%,因此每个30%。在5行的情况下,每行必须占20%。
所以我在接下来的两行代码中附加了button_Click方法。
private void button_Click(object sender, EventArgs e)
{
this.tableLayoutPanel1.ColumnCount = 3;
this.tableLayoutPanel1.RowCount = 5;
}
但我得到了同样的结果! 我缺少什么?
答案 0 :(得分:4)
可能您正在为已定义的TableLayoutPanel添加样式而不重置当前样式。
tableLayoutPanel1.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single;
tableLayoutPanel1.Dock = DockStyle.Fill;
tableLayoutPanel1.Controls.Clear();
tableLayoutPanel1.ColumnStyle.Clear();
tableLayoutPanel1.RowStyle.Clear();
tableLayoutPanel1.RowCount = 5;
for(int x = 0; x < tableLayoutPanel1.RowCount; x++)
tableLayoutPanel1.RowStyles.Add(new RowStyle() { Height = 20, SizeType = SizeType.Percent });
tableLayoutPanel1.ColumnCount = 3;
for(int x = 0; x < tableLayoutPanel1.ColumnCount; x++)
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle() { Width = 33, SizeType = SizeType.Percent });