自动调整TableLayoutPanel的大小

时间:2009-09-28 13:43:14

标签: .net winforms tablelayoutpanel

我有一个以编程方式创建的TableLayoutPanel。它工作正常,但我找不到一些东西:如何在调整表单大小时自动调整列大小?面板设置为Dock.Top,当我调整窗体大小而不是将每列调整为百分比时,只有最后一列增长。我能为此做些什么?以下是我为每列添加ColumnStyle的方法:

this.tablePanelFilter.ColumnStyles.Add(
  new ColumnStyle(SizeType.Percent,Convert.ToSingle(
     Math.Ceiling((decimal)100 / (decimal)columnCount))));

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

您首先清除ColumnStyles吗?使用调试器和/或某些代码来验证您是否拥有与列一样多的ColumnStyles。

答案 2 :(得分:1)

将此代码添加到form.Resize事件解决了问题:

this.tablePanelFilter.ColumnStyles.Clear();

            for (int i = 0; i < this.tablePanelFilter.ColumnCount; i++)
            {
                ColumnStyle c = new ColumnStyle();
                c.SizeType = SizeType.Percent;
                c.Width = Convert.ToSingle(Math.Ceiling((decimal)100 / (decimal)this.tablePanelFilter.ColumnCount));
                this.tablePanelFilter.ColumnStyles.Add(c);
            }