System.Windows.Forms.ToolStripContainer
: WinForms에서 툴바(ToolStrip), 메뉴(MenuStrip), 상태 표시줄(StatusStrip) 등을 자동으로 분리된 영역에 배치할 수 있도록 도와주는 레이아웃 컨테이너 컨트롤
🧠 요약
ToolStripContainer는 다음과 같은 5개의 영역을 자동으로 제공하여 UI를 나눠준다:
+--------------------------------------+
| [TopToolStripPanel] |
+--------------------------------------+
| |
| [ContentPanel] ← 본문 내용 위치 |
| |
+--------------------------------------+
| [BottomToolStripPanel] |
+--------------------------------------+
그리고 좌우도 가능:
| [LeftToolStripPanel] ContentPanel [RightToolStripPanel] |
🧩 구성 요소
구성요소 설명
| TopToolStripPanel | 상단에 ToolStrip, MenuStrip 등을 배치 |
| BottomToolStripPanel | 하단 상태 표시줄 배치 등 |
| LeftToolStripPanel | 좌측 도구 막대 배치 |
| RightToolStripPanel | 우측 도구 막대 배치 |
| ContentPanel | 애플리케이션의 주요 콘텐츠 (Form 내용) 표시 영역 |
🔨 사용 예제
ToolStripContainer container = new ToolStripContainer();
container.Dock = DockStyle.Fill;
ToolStrip toolStrip = new ToolStrip();
toolStrip.Items.Add("파일");
toolStrip.Items.Add("편집");
container.TopToolStripPanel.Controls.Add(toolStrip);
TextBox textBox = new TextBox();
textBox.Multiline = true;
textBox.Dock = DockStyle.Fill;
container.ContentPanel.Controls.Add(textBox);
this.Controls.Add(container); // 폼에 추가
이 구조로 하면 툴바는 자동으로 위에 고정되고, 텍스트박스는 그 아래 영역 전체를 차지한다.
✅ 언제 쓰면 좋은가?
- 툴바/메뉴/상태바를 자동으로 깔끔하게 정렬하고 싶을 때
- ToolStrip, MenuStrip, StatusStrip을 자유롭게 위, 아래, 좌, 우로 배치/이동하고 싶을 때
- Dock = Top 등으로 수동 배치하는 것보다 더 유연한 레이아웃 구조가 필요할 때
📌 유용한 팁
- ToolStripContainer는 ToolStrip 전용 컨테이너입니다. Panel이나 GroupBox처럼 일반 컨트롤을 다루기보단 도구막대 전용 구조
- ToolStrip은 사용자가 마우스로 드래그해서 다른 Panel(Top → Left 등)로 이동시킬 수 있도록 설정할 수도 있다.
🎯 요약
장점 단점
| 툴바/메뉴/상태바 자동 배치 | 초보자에겐 구조가 다소 복잡할 수 있음 |
| 레이아웃 분리로 유지보수 용이 | 일반 컨트롤에 쓰기엔 과함 |
| 다양한 방향으로 배치 가능 | Dock으로 충분하면 굳이 필요 없음 |
'C#' 카테고리의 다른 글
| C# | 디자인패턴 싱글톤 (0) | 2025.06.05 |
|---|---|
| [C#] 비모달- Show() 과 모달-ShowDialog() 의 차이 (0) | 2025.05.22 |
| [ C# ] SuspendLayout, ResumeLayout - 폼/컨트롤의 레이아웃 계산을 일시 중단하기 (0) | 2025.05.21 |
| C# 인터넷 또는 제한 영역에 있거나 파일에 웹 표시가 있으므로 처리할 수 없습니다. (0) | 2025.05.15 |
| C# 윈폼 소스코드만 보이고 디자인 안 열릴 때 (0) | 2024.09.05 |