📁 [4] 개발자 정보 & 코드 노트/C#
C# Windows Forms 강의 98편: 멀티페이지 탭 애플리케이션 제작 - TabControl 활용
wawManager
2025. 5. 12. 12:00
1. 강의 개요
이번 강의에서는 TabControl을 활용하여 멀티페이지 기능을 가진 애플리케이션을 제작합니다.
TabControl은 여러 탭(Tab)으로 화면을 나눠 기능별로 구성할 수 있는 컨트롤입니다.
이 강의에서는 각 탭마다 별도의 기능(예: 설정, 데이터 관리 등)을 구현하는 방법을 배웁니다.
2. 학습 목표
- TabControl을 사용해 탭 기반 UI 구성
- 각 탭에 컨트롤 배치 및 기능 구현
- 동적으로 탭을 추가하거나 제거하는 방법
- 사용자 친화적인 다중 작업 UI 구성
3. 기능 요구사항
필수 기능
1️⃣ 기본 TabControl 구성:
- 여러 개의 탭으로 화면을 나눠 구성
2️⃣ 탭별 독립적 UI 구성:
- 각 탭에서 별도의 기능 제공 (예: 데이터 입력, 설정 등)
3️⃣ 동적 탭 추가/삭제:
- 버튼 클릭으로 탭 추가 또는 제거
4. 실습: 멀티페이지 탭 애플리케이션 제작
1️⃣ 폼 구성
- 폼(Form) 이름: Form1
- 컨트롤 배치:
컨트롤 타입 이름 위치 크기
TabControl | tabControl | 폼 상단 전체 | (600 x 300) |
Button | btnAddTab | 폼 하단 왼쪽 | (100 x 30) |
Button | btnRemoveTab | 폼 하단 오른쪽 | (100 x 30) |
📌 폼 디자인 예시:
--------------------------------------------------
| [TabControl] |
| |
| [TabPage1] [TabPage2] |
|------------------------------------------------|
| [Add Tab 버튼] [Remove Tab 버튼] |
--------------------------------------------------
2️⃣ 코드 작성
(1) TabControl 기본 구성
using System;
using System.Windows.Forms;
namespace WindowsFormsApp_TabControl
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
InitializeTabs();
}
// 기본 TabControl 초기화
private void InitializeTabs()
{
tabControl.TabPages.Clear();
// 첫 번째 탭 추가
var tabPage1 = new TabPage("Home");
tabPage1.Controls.Add(new Label
{
Text = "홈 화면입니다.",
Location = new System.Drawing.Point(20, 20),
AutoSize = true
});
tabControl.TabPages.Add(tabPage1);
// 두 번째 탭 추가
var tabPage2 = new TabPage("Settings");
tabPage2.Controls.Add(new Label
{
Text = "설정 화면입니다.",
Location = new System.Drawing.Point(20, 20),
AutoSize = true
});
tabControl.TabPages.Add(tabPage2);
}
}
}
(2) 동적 탭 추가/삭제
// 동적 탭 추가
private void btnAddTab_Click(object sender, EventArgs e)
{
int newTabIndex = tabControl.TabPages.Count + 1;
var newTabPage = new TabPage($"Tab {newTabIndex}");
newTabPage.Controls.Add(new Label
{
Text = $"이것은 Tab {newTabIndex} 입니다.",
Location = new System.Drawing.Point(20, 20),
AutoSize = true
});
tabControl.TabPages.Add(newTabPage);
}
// 동적 탭 삭제
private void btnRemoveTab_Click(object sender, EventArgs e)
{
if (tabControl.TabPages.Count > 0)
{
tabControl.TabPages.RemoveAt(tabControl.TabPages.Count - 1);
}
else
{
MessageBox.Show("제거할 탭이 없습니다.", "알림", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
(3) Designer 코드
private void InitializeComponent()
{
this.tabControl = new TabControl();
this.btnAddTab = new Button();
this.btnRemoveTab = new Button();
// TabControl 설정
this.tabControl.Location = new System.Drawing.Point(10, 10);
this.tabControl.Size = new System.Drawing.Size(600, 300);
// Add Tab Button 설정
this.btnAddTab.Location = new System.Drawing.Point(10, 320);
this.btnAddTab.Size = new System.Drawing.Size(100, 30);
this.btnAddTab.Text = "Add Tab";
this.btnAddTab.Click += new EventHandler(this.btnAddTab_Click);
// Remove Tab Button 설정
this.btnRemoveTab.Location = new System.Drawing.Point(120, 320);
this.btnRemoveTab.Size = new System.Drawing.Size(100, 30);
this.btnRemoveTab.Text = "Remove Tab";
this.btnRemoveTab.Click += new EventHandler(this.btnRemoveTab_Click);
// Form 설정
this.ClientSize = new System.Drawing.Size(640, 360);
this.Controls.Add(this.tabControl);
this.Controls.Add(this.btnAddTab);
this.Controls.Add(this.btnRemoveTab);
this.Text = "멀티페이지 탭 애플리케이션";
}
3️⃣ 실행 결과
1️⃣ 탭 초기화
- "Home"과 "Settings" 탭이 기본으로 추가
2️⃣ 탭 추가
- "Add Tab" 버튼 클릭 → 새로운 탭 추가
3️⃣ 탭 제거
- "Remove Tab" 버튼 클릭 → 가장 마지막 탭 제거
5. 주요 개념 요약
- TabControl: 탭 기반 UI를 구성하는 컨트롤
- TabPage: TabControl에 포함되는 각 페이지
- Controls.Add(): TabPage에 컨트롤을 동적으로 추가
📌 #CSharp #WindowsForms #TabControl #멀티페이지 #동적UI