본문 바로가기
Program/C# .NET

[C#] Winform 컨트롤 배열하기 / 사각형 배열 Panel TableLayoutPanel

by 냠만 2024. 7. 4.

[TableLayoutPanel 이란]

Winform 작업에 Panel 종류 중 다른 종류의 Panel로 절친이라고 할 수 있습니다. 그만큼 매우 중요한 Panel로 활용도가 매우 높다고 할 수 있습니다. 해당 패널은 일반 패널과 다르게 동일한 비율의 컨트롤 구성을 진행 할 수 있고 동서남북 방향이 아닌 대각선 방향으로 컨트롤을 배치할 수 있다는 장점이 있습니다. 정확히 말하면 Row와 Column의 개념으로 2차원 배열에 X Y를 통하여 컨트롤을 배치할 수 있습니다.

위 사진과 같이 왼쪽은 일반 Panel이고 오른쪽이 TableLayoutPanel입니다. 차이점이 확연히 들어나듯 오른쪽은 배열로 컨트롤의 위치를 조정할 수 있고 왼쪽은 상하좌우 개념으로 컨트롤을 배치할 수 있습니다. 두 Panel 모두 화면 구성시에 자주 쓰이며 중요한 Tool이라고 할 수 있습니다.

TableLayoutPanel은 Row와 Column수에 따라 배치가 가능하며 주로 동적으로 컨트롤을 할당하여 사용할 때 활용됩니다.

추후 포스팅에서 동적으로 컨트롤을 할당하고 위치를 조정하는 작업을 소개하도록 하겠습니다.

 

[Row Column추가하기]

Row 추가를 먼저 공유할탠데 Column도 Row와 동일한 방식으로 진행하시면 됩니다.

Panel 동서남북 버튼 Fill

컨트롤을 구성하다보면 Row와 Column을 자유자재로 추가하고 삭제하면서 할당을 진행하게 됩니다. 각 위치에 따라 이벤트도 다르게 할당할 수 있고 기능도 다르게 구성할 수 있는점 참고하시면 될 것 같습니다.

 

먼저 기본적으로 TableLayoutPanel을 도구상자에서 추가하면 2x2행렬의 모습으로 구성됩니다. 2x2행렬 각각 위치가 개별 Panel 형식처럼 사용된다고 생각하시면 되고 해당 Panel위에 컨트롤을 올리면 해당 컨트롤 속성에 Dock속성이 생성되고 동일하게 Panel처럼 동서남북 구조로 배치가 가능합니다.

 

Row를 추가하는 방법은 위와 같습니다.

1. 먼저 TableLayoutPanel을 선택하고 속성탭에서 Rowcount를 증가시켜 줍니다.

그 다음 아래있는 Rows의 컬렉션 부분을 클릭하면 오른쪽에 '열 및 행 스타일' 창으로 진입할 수 있는 버튼이 생성되는데, 이 버튼을 클릭하여 진입하면 됩니다.

 

2.창에 진입하신 다음 각 Row의 구성 비율을 설정해야 합니다.

기본적으로 처음 Row을 추가하신 경우 크기 형식이 절대값으로 20픽셀 적용되어 있습니다.

3. 각 Row를 클릭하며 백분율로 설정하여 영역 크기를 일정하게 할당합니다.

현재 세팅은 33.33%로 되어있지만 기호에 따라 50%로 모두 동일하게 설정하셔도 됩니다. 다만 주의할점은 100%로 설정하게되면 해당 Row에 포커싱이 집중되어 일반적으로 첫 번째 Row만 거대해지는 현상이 발생할 수 있습니다. 

 

[마치며]

Winform 프로그래밍을 진행하며 가장 중요하다고 생각하는 Panel과 그의 친구 TableLayoutPanel에 대해 알아보았습니다. 다음 포스팅에서는 TableLayoutPanel에 동적으로 컨트롤을 할당하고 배치하는 구조에 대해 알아보겠습니다.

동적으로 컨트롤을 배치한다는건 컨트롤 변수를 소스단에서 제어할 수 있다는 큰 장점이 있으므로 반드시 필요한 스킬이라고 생각합니다.