[英]TableLayoutPanel | adding new rows and controls
我在这里陷入了困境。 我试图在底部的C#中向TableLayoutPanel添加新行,并在每次添加新行时调整TLP的大小,我搜索了很多地方,但似乎找不到正确的方法。
问题每当我添加一行并向其中添加组件时,这些组件就会与第一行重叠。
这是我如何添加新行
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;
}
据我所知,无论出于何种原因,RowCount都不是获取行数的可靠方法
相反,我可以通过将控件总数除以列数来获得要添加的行:
int rowNo = Controls.Count / numberOfColumns;
但是,除非您有充分的理由不使用DataGridView,否则建议您这样做。 TableLayoutPanel难以动态使用
可以肯定的是:在AddControls()
,您是否为每一行动态创建新的组合框和文本框?我尝试一遍又一遍地添加相同的控件实例,并得到与您所遇到的相同的行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.