2012-07-05 6 views
0

TableLayoutPanel에서 기본적으로 행 또는 열의 마지막 요소는 나머지 공간을 차지합니다. 가장 마지막에서 두 번째 또는 다른 요소가 가능한 한 많은 공간을 차지하는 레이아웃을 얻으려면 어떻게해야합니까? 그리고 마지막 요소는 필요한만큼만 공간을 차지합니까?C# TableLayoutPanel fill

답변

4

다른 행이 설정되는 방법에 따라 다릅니다. 다른 모든 행이 자동 크기 또는 고정 크기라고 가정 할 경우, 끝에서 두 번째 행의 크기를 100 %로 설정하면 원하는대로 수행됩니다. 디자이너가 생성 한 코드는 다음과 같습니다.

this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); 
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); 
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); 
+0

당신은 저를 때려 눕 힙니다. - 그냥! +1 – dash

+0

두 분 모두에게 감사드립니다. 그러나 대시가 옳습니다 (Dominique가 처음 이었음) : P – arik

+0

@DominiqueJacquel이 처음이었습니다. 나는 나의 대답을 올렸고, 매우 유사한 또 다른 하나를 보았을 때 놀라서 당했다. – dash

2

Windows Forms 및 .Net Framework 4를 사용하여 테스트했습니다.

가장 간단한 해결책은 테이블 레이아웃 패널을 만들고 각 열에 컨트롤을 포함시키는 것입니다. 완료되면 모든 열의 크기를 "자동 크기 조정"으로 설정하십시오. 이 경우, 같은

tableLayoutPanel1 = new TableLayoutPanel(); 
    tableLayoutPanel1.ColumnCount = 4; 
    tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); 
    tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); 
    tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); 
    tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); 

것은 먼저 컨트롤을 포함해야합니다 :

그런

가 여기 내 디자이너의 코드의 수 "100 %"당신의 끝에서 두 번째 열을 가지고 크기를 설정 끝에서 두 번째 열을 100 % 크기로 설정하면 다른 셀에 내용이 없으므로 100 % 열이 효과적으로 공간을 "훔치기"때문에 빈 셀에 컨트롤을 배치하는 데 디자이너를 사용하는 것이 까다로울 수 있습니다.

관련 문제