我有一个以编程方式创建的TableLayoutPanel。它工作正常,但我找不到一些东西:如何在调整表单大小时自动调整列大小?面板设置为Dock.Top,当我调整窗体大小而不是将每列调整为百分比时,只有最后一列增长。我能为此做些什么?以下是我为每列添加ColumnStyle的方法:
this.tablePanelFilter.ColumnStyles.Add(
new ColumnStyle(SizeType.Percent,Convert.ToSingle(
Math.Ceiling((decimal)100 / (decimal)columnCount))));
答案 0 :(得分:2)
您是否尝试将ColumnStyles设置为SizeType.Percent?
http://msdn.microsoft.com/en-us/library/system.windows.forms.tablelayoutpanel.columnstyles.aspx
答案 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);
}