我正在尝试动态地将列和行添加到TableLayoutPanel。到目前为止,我有以下代码:
l = new Label();
l.Text = "" + headers[headers.Count-1];
ColumnStyle cStyle = new ColumnStyle(SizeType.AutoSize);
theTable.ColumnStyles.Add(cStyle);
theTable.Controls.Add(l, colCount, 0);
colCount++;
这会添加我需要的所有列。然后我尝试使用:
切换到添加行theTable.GrowStyle = TableLayoutPanelGrowStyle.AddRows;
但这不起作用。它取而代之的是我添加的列并将它们分成行。有没有办法动态创建列然后动态创建行?
由于
答案 0 :(得分:4)
我无法重现您的问题:
private void AddTLP()
{
List<string> headers = new List<string>();
headers.Add("Column 1");
headers.Add("Column 2");
headers.Add("Column 3");
TableLayoutPanel tlp = new TableLayoutPanel();
tlp.Size = new Size(356, 120);
tlp.BackColor = Color.Gray;
for (int i = 0; i < headers.Count; i++)
{
Label l = new Label();
l.Text = headers[i].ToString();
ColumnStyle cStyle = new ColumnStyle(SizeType.AutoSize);
tlp.ColumnStyles.Add(cStyle);
tlp.Controls.Add(l, i, 0);
}
tlp.GrowStyle = TableLayoutPanelGrowStyle.AddRows;
// Add controls to test growth:
tlp.Controls.Add(new Button(), 0, 1);
tlp.Controls.Add(new TextBox(), 1, 2);
this.Controls.Add(tlp);
}
必须有一些您没有显示导致问题的代码。