TableLayout单元格大小问题(C#)

时间:2011-04-07 21:25:43

标签: c# controls tablelayout

我有一个最初为空的TableLayoutPanel控件 - 0行和0列。我想形成它,并用代码中的一些控件填充它,它可以工作,但我有一些讨厌的问题 - 当我使用代码向TableLayoutPanel添加控件时,cols和行的大小不同(尽管所有添加的控件都是相同的大小,并停靠在TableLayoutPanel容器中填充单元格)。基本上第一行占据高度的50%,接下来的两行占25%。

我试过的代码看起来像这样:

//Reseting table:
tableLayoutPanel1.RowCount = 1;
tableLayoutPanel1.ColumnCount = 1;

//Size of one side of matrix:
int oneSide=(int)Math.Sqrt(mat.Matrix.Length);

tableLayoutPanel1.RowCount = oneSide;
tableLayoutPanel1.ColumnCount = oneSide;

tableLayoutPanel1.RowStyles.Clear();
tableLayoutPanel1.ColumnStyles.Clear();
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100 / oneSide));
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100 / oneSide));

//Matrix is an array of controls, mat is some class
tableLayoutPanel1.Controls.AddRange(mat.Matrix);

上面的代码没有完成这项工作......如何从代码中添加somtrols,并使所有单元格大小相同? 附:我必须从代​​码中添加控件,在设计时创建行和列是不可能的。

1 个答案:

答案 0 :(得分:1)

手动执行此操作令人不快,让代码生成器为您完成工作。创建一个虚拟表单,在其上放置一个TLP。以设计师的方式获得它。

接下来,在“解决方案资源管理器”窗口中找到该表单,然后打开它左侧的节点。双击Designer.cs文件。在InitializeComponent方法中找到代码并复制/粘贴它。