2009-09-28 51 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。