2009-09-28 53 views
3

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

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

回答

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); 
      } 
1

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