使用TableLayoutPanel添加列后添加行

时间:2011-07-20 18:16:40

标签: c# .net winforms

我正在尝试动态地将列和行添加到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;

但这不起作用。它取而代之的是我添加的列并将它们分成行。有没有办法动态创建列然后动态创建行?

由于

1 个答案:

答案 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);
}

必须有一些您没有显示导致问题的代码。