我想动态添加TableLayoutPanel。另外,我想动态设置列的宽度。以下是我为获得所需结果而编写的代码。但它不起作用。我附上了此代码输出的图像。请帮忙......这只是一个测试代码,我想学习动态创建控件,定位它们,设置它们等等......
private void ShowAllRecords() {
TableLayoutPanel[] tab = new TableLayoutPanel[MaxRows];
for (int rNumber = 0; rNumber < 1; rNumber++)
{
tab[rNumber] = new TableLayoutPanel();
tab[rNumber].ColumnStyles.Clear();
tab[rNumber].RowCount = 1;
tab[rNumber].ColumnCount = 2;
tab[rNumber].CellBorderStyle = TableLayoutPanelCellBorderStyle.Inset;
tab[rNumber].Location = new Point(0, (rNumber * 50) + 100);
tab[rNumber].Width = 200;
TableLayoutColumnStyleCollection styles = tab[rNumber].ColumnStyles;
tab[rNumber].ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 10));
panel1.Controls.Add(tab[rNumber]);
tab[rNumber].BringToFront();
}
}
输出:
答案 0 :(得分:0)
我注意到for循环中有一个错误:你总是只迭代一次而不是MaxRows
次。替换这个:
for (int rNumber = 0; rNumber < 1; rNumber++)
用这个:
for (int rNumber = 0; rNumber < MaxRows; rNumber++)
现在,您将使用第一个固定宽度列创建所需数量的TableLayoutPanel
,一个堆叠在另一个下方并部分重叠。你可能也应该设置Height
,但很难猜出你想要达到的目标。