在使用TableLayoutPanel添加列之后添加一行

本文关键字:添加 一行 TableLayoutPanel 之后 | 更新日期: 2023-09-27 18:03:10

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

但这不起作用。相反,它将我添加的列变成行。是否有一种方法可以动态创建列,然后动态创建行?

谢谢

在使用TableLayoutPanel添加列之后添加一行

我无法重现您的问题:

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

一定有一些你没有显示的代码导致了这个问题。