2011-04-21 3 views
9

5 개 또는 7 개의 열이있는 tableLayoutPanel이 있습니다. 사용자는 "주말 표시/숨기기"버튼을 클릭하여 5 일에서 7 일 사이로 전환 할 수 있습니다.런타임시 TableLayoutPanel 열 너비 : 이상한 동작 또는 버그

문제 : 5 일부터 시작하여 5/7 버튼을 누르면 7 개의 열이 균등하지 않게됩니다. 열 6은 나머지보다 훨씬 작습니다. 이상한 점은 7 일부터 시작하면 모두 괜찮아 보이는 것입니다. 5로 전환 한 다음 7로 돌아 가면 여전히 모두 괜찮습니까?

void lblSatSunday_Click(object sender, EventArgs e) 
    { 
     ShowZaterdagZondag = !ShowZaterdagZondag; 
     AddDisplayControls(); 
    } 

    private void AddDisplayControls() 
    { 
     tblPanel.SuspendLayout(); 
     tblPanel.Controls.Clear(); 
     tblPanel.ColumnCount = ShowZaterdagZondag ? 7 : 5; // <<<------- 
     tblPanel.RowCount = 1; 
     tblPanel.GrowStyle = TableLayoutPanelGrowStyle.FixedSize;//.AddColumns; 
     for (int i = 0; i < tblPanel.ColumnCount; i++) 
     { 
      ColumnStyle cs = new ColumnStyle(SizeType.Percent, 100/tblPanel.ColumnCount); 
      tblPanel.ColumnStyles.Add(cs); 

      //Add accordeon 
      Accordeon a = new Accordeon(); 
      //Removed code for reading 
      tblPanel.Controls.Add(a); 
     } 
     tblPanel.ResumeLayout(); 
    } 
+2

) (tblPanel.ColumnStyles.Clear 추가; –

+0

Doh! 감사! :-) –

답변

12

for 루프 전에 코드 줄을 추가

tblPanel.ColumnStyles.Clear();