我在这里陷入了两难境地。我试图在底部的TableLayoutPanel中向C#中的C#中添加新行,并在每次添加新行时调整TLP的大小,我搜索了很多地方,但似乎找不到正确的方法。
PROBLEM当我添加一行并向其添加组件时,这些组件与第一行重叠。

,这就是我是如何添加新行的
private int AddTableRow()
{
int index = tableLayoutPanel1.RowCount++;
RowStyle style = new RowStyle(SizeType.AutoSize, 20F);
tableLayoutPanel1.RowStyles.Add(style);
return index;
},这就是我是如何添加组件的
private void AddControls
{
int rowIndex = AddTableRow();
tableLayoutPanel1.Visible = false;
tableLayoutPanel1.Controls.Add(myComboBox1, 0, rowIndex);
tableLayoutPanel1.Controls.Add(myComboBox2, 1, rowIndex);
tableLayoutPanel1.Controls.Add(mytextBox1 , 2, rowIndex);
tableLayoutPanel1.Controls.Add(mytextBox2 , 3, rowIndex);
tableLayoutPanel1.Controls.Add(mytextBox3 , 4, rowIndex);
tableLayoutPanel1.Controls.Add(mytextBox4 , 5, rowIndex);
tableLayoutPanel1.Controls.Add(mytextBox5 , 6, rowIndex);
tableLayoutPanel1.Visible = true;
}发布于 2014-10-03 10:12:22
据我所记得,RowCount并不是以任何理由获取行数的可靠方法。
相反,我将通过将控件的总数除以列数来添加要添加的行:
int rowNo = Controls.Count / numberOfColumns;但是,除非您有充分的理由不使用DataGridView,否则我建议您这样做。TableLayoutPanel很难动态地使用。
发布于 2014-10-03 10:33:18
要确定的是:在AddControls()中,您是否为每一行动态创建新的组合框和文本框?我尝试一次又一次地添加相同的控件实例,并得到了与您正在经历的相同行为。
https://stackoverflow.com/questions/26173778
复制相似问题