2011-02-24 4 views
2

나는 전체 영역을 차지하고 도킹을 채우는 TableLayoutPanel을 가지고 있습니다. 나는 3 x 3 테이블/그리드를 만들었다. 가운데 셀의 높이와 너비를 설정 한 다음 다른 모든 것이 자동 크기가되게하고 싶습니다. 이렇게하면 가운데 셀의 내용이 컨테이너의 가운데에 있습니다.C# WinForms 가운데 내용

나는 이것이 잘못된 길로 가고있는 것처럼 보입니다. 컨테이너 (패널)에 내용을 집중시키는 가장 좋은 방법은 무엇입니까? TableLayoutPanel의 오른쪽 상단에서

, 화살표있다 :

답변

2

절대, 50 %로 나머지 중앙 행과 열을 설정 : 여기

enter image description here

수동으로 테이블을 설정하는 몇 가지 코드입니다.

0

이 시도해보십시오. 그것을 클릭하고 "행 및 열 편집 ..."으로 이동하십시오. 가운데 행과 중간 열 차원을 백분율 또는 절대 픽셀로 지정하십시오.

5

Percent 모드의 첫 번째 행과 마지막 행뿐만 아니라 가운데 열과 행을 Autosize으로 설정하십시오.

이렇게하면 가운데 셀이 항상 가운데에 있고 콘텐츠 크기에 맞게 조정됩니다. 디자이너를 사용

tableLayout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50.0f)); 
tableLayout.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); 
tableLayout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50.0f)); 
tableLayout.RowStyles.Add(new RowStyle(SizeType.Percent, 50.0f)); 
tableLayout.RowStyles.Add(new RowStyle(SizeType.AutoSize)); 
tableLayout.RowStyles.Add(new RowStyle(SizeType.Percent, 50.0f)); 
0

콘텐츠를 상위 컨테이너의 가운데에 놓은 다음 모든 앵커링 (특히 기본 상단 및 왼쪽 앵커링)을 해제하는 것이 좋습니다. 본질적으로 중심에 위치해야합니다.

0

컨트롤을 중앙에 배치해야하는 경우 TableLayoutPanel을 사용할 필요가 없습니다. 패널에 컨트롤을 추가하고 디자이너에서 수동으로 중앙에 놓고 모든 앵커를 제거하면됩니다.
비슷한 스레드가 이미 있습니다. Centering controls within a form in .NET (Winforms)?