3

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

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

3 回答 3

2

您是否尝试将 ColumnStyles 设置为 SizeType.Percent?

http://msdn.microsoft.com/en-us/library/system.windows.forms.tablelayoutpanel.columnstyles.aspx

于 2010-06-01T18:48:45.580 回答
1

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

于 2009-09-28T13:52:35.603 回答
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);
            }
于 2009-09-28T14:14:10.960 回答