2014-02-24 60 views
2

我有一個TableLayoutPanel,它具有由用戶決定的動態數量的列和行。我想要裏面的按鈕是正方形和相同的大小,但是每當我使用循環來設置列/行樣式時,它們都不會變成我希望它們的大小。在TableLayoutPanel上不工作的列樣式

如何獲得列/行樣式來設置容器元素的合適寬度和高度?

這裏是處理設置表格的寬度大小不同的代碼的循環方法(我用類似的方法行)

void FormatTableWidth(ref TableLayoutPanel container) 
    { 
     TableLayoutColumnStyleCollection columnStyles = container.ColumnStyles; 
     foreach (ColumnStyle style in columnStyles) 
     { 
      style.SizeType = SizeType.Absolute; 

      style.Width = 60; 
     } 
    } 

回答

3

你可以不喜歡它....

public void AddButtontControls() 
     { 
      tblPanel.SuspendLayout(); 
      tblPanel.Controls.Clear();   
      tblPanel.GrowStyle = TableLayoutPanelGrowStyle.FixedSize;//.AddColumns; 
      tblPanel.ColumnStyles.Clear(); 
      for (int i = 0; i < tblPanel.ColumnCount; i++) 
      { 
       ColumnStyle cs = new ColumnStyle(SizeType.Percent, 100/tblPanel.ColumnCount); 
       tblPanel.ColumnStyles.Add(cs); 

       //Add Button 
       Button a = new Button(); 
       a.Text = "Button " + i + 1;     
       tblPanel.Controls.Add(a); 
      } 
      tblPanel.ResumeLayout(); 
     } 
+0

非常感謝你,這完全符合我的需要!我猜這個問題是我需要清除樣式並添加它們,它將它們設置爲新的樣式會搞亂。 – user3334134