ColumnStyle不起作用

时间:2014-02-08 08:39:04

标签: c# tablelayoutpanel

我想动态添加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();
    }
}

输出: a busy cat

1 个答案:

答案 0 :(得分:0)

我注意到for循环中有一个错误:你总是只迭代一次而不是MaxRows次。替换这个:

for (int rNumber = 0; rNumber < 1; rNumber++)

用这个:

for (int rNumber = 0; rNumber < MaxRows; rNumber++)

现在,您将使用第一个固定宽度列创建所需数量的TableLayoutPanel,一个堆叠在另一个下方并部分重叠。你可能也应该设置Height,但很难猜出你想要达到的目标。