728x90
1. 강의 개요
이번 강의에서는 Windows Forms의 기본 컨트롤 중 하나인 CheckBox와 RadioButton을 활용하여 사용자 선택 옵션을 처리하는 방법을 배웁니다.
CheckBox는 다중 선택, RadioButton은 그룹 내 단일 선택을 처리할 수 있어 설문조사나 설정 화면 등에 유용하게 사용됩니다.
2. 학습 목표
- CheckBox와 RadioButton의 기본 동작과 속성 이해.
- 그룹화(GroupBox)를 사용해 RadioButton을 묶어 단일 선택 처리.
- 다중 선택과 단일 선택 옵션을 활용한 간단한 프로그램 설계.
3. 컨트롤 개요
CheckBox (체크박스)
- 다중 선택이 가능하며, 주로 설정 옵션에 사용.
- 상태: Checked(선택됨) 또는 Unchecked(선택되지 않음).
RadioButton (라디오버튼)
- 그룹 내에서 단일 선택을 처리.
- 상태: Checked(선택됨).
- 단독으로 사용하거나 GroupBox 내에 묶어서 활용.
GroupBox (그룹박스)
- 여러 컨트롤을 그룹화하여 UI를 정리하거나 RadioButton의 그룹화를 처리.
4. 프로젝트 준비
1) 프로젝트 생성
- Visual Studio에서 Windows Forms App (.NET) 프로젝트 생성.
- 프로젝트 이름: CheckBoxAndRadioButtonApp
2) 폼 설계
- CheckBox로 다중 선택 옵션.
- GroupBox + RadioButton으로 단일 선택 옵션.
- 결과를 표시할 Label 추가.
5. 실습: 다중 선택 및 단일 선택 옵션 구현
1) 디자이너에서 컨트롤 추가
컨트롤 타입 이름 텍스트 위치(x, y) 크기(Width x Height)
Label | lblQuestion | "좋아하는 음식을 선택하세요:" | (20, 20) | (300 x 30) |
CheckBox | chkPizza | "피자" | (40, 60) | (100 x 30) |
CheckBox | chkBurger | "햄버거" | (40, 90) | (100 x 30) |
CheckBox | chkSushi | "스시" | (40, 120) | (100 x 30) |
GroupBox | grpDrinks | "음료를 선택하세요:" | (20, 160) | (300 x 120) |
RadioButton | rdoCola | "콜라" | (40, 190) | (100 x 30) |
RadioButton | rdoJuice | "주스" | (40, 220) | (100 x 30) |
RadioButton | rdoWater | "물" | (40, 250) | (100 x 30) |
Button | btnSubmit | "결과 확인" | (20, 300) | (100 x 30) |
Label | lblResult | "" (빈 텍스트) | (20, 340) | (400 x 30) |
2) 클릭 이벤트 작성
- 디자이너에서 btnSubmit을 더블 클릭하여 클릭 이벤트 핸들러 생성.
private void btnSubmit_Click(object sender, EventArgs e)
{
// CheckBox 선택된 항목 확인
List<string> foods = new List<string>();
if (chkPizza.Checked) foods.Add("피자");
if (chkBurger.Checked) foods.Add("햄버거");
if (chkSushi.Checked) foods.Add("스시");
// RadioButton 선택된 항목 확인
string drink = "";
if (rdoCola.Checked) drink = "콜라";
else if (rdoJuice.Checked) drink = "주스";
else if (rdoWater.Checked) drink = "물";
// 결과 출력
if (foods.Count == 0 && string.IsNullOrEmpty(drink))
{
lblResult.Text = "음식과 음료를 선택하세요.";
}
else
{
string foodResult = foods.Count > 0 ? string.Join(", ", foods) : "선택 안 함";
string result = $"선택한 음식: {foodResult}, 선택한 음료: {drink}";
lblResult.Text = result;
}
}
3) 실행 결과
- 피자와 햄버거를 선택하고, 음료로 "콜라"를 선택 후 버튼 클릭:
- 출력: 선택한 음식: 피자, 햄버거, 선택한 음료: 콜라
- 아무것도 선택하지 않은 경우:
- 출력: 음식과 음료를 선택하세요.
6. 각 컨트롤의 주요 속성 및 사용 방법
1) CheckBox의 주요 속성
속성 설명 예제
Checked | 선택 여부를 나타냄 (true/false) | chkPizza.Checked = true; |
Text | CheckBox 옆에 표시할 텍스트 | chkPizza.Text = "피자"; |
Enabled | 활성화 여부 | chkPizza.Enabled = false; |
2) RadioButton의 주요 속성
속성 설명 예제
Checked | 선택 여부를 나타냄 (true/false) | rdoCola.Checked = true; |
Text | RadioButton 옆에 표시할 텍스트 | rdoCola.Text = "콜라"; |
Enabled | 활성화 여부 | rdoCola.Enabled = false; |
3) GroupBox의 주요 속성
속성 설명 예제
Text | GroupBox의 제목 | grpDrinks.Text = "음료 선택"; |
Enabled | GroupBox 내부 컨트롤 활성화/비활성화 | grpDrinks.Enabled = false; |
7. 추가 실습: 다중 그룹 RadioButton 처리
- 두 번째 GroupBox 추가:
- 제목: "선호하는 시간대"
- RadioButton 3개: "아침", "점심", "저녁"
- 모든 선택 항목을 버튼 클릭 시 결과에 포함되도록 처리.
private void btnSubmit_Click(object sender, EventArgs e)
{
// 음식 선택
List<string> foods = new List<string>();
if (chkPizza.Checked) foods.Add("피자");
if (chkBurger.Checked) foods.Add("햄버거");
if (chkSushi.Checked) foods.Add("스시");
// 음료 선택
string drink = "";
if (rdoCola.Checked) drink = "콜라";
else if (rdoJuice.Checked) drink = "주스";
else if (rdoWater.Checked) drink = "물";
// 시간대 선택
string time = "";
if (rdoMorning.Checked) time = "아침";
else if (rdoLunch.Checked) time = "점심";
else if (rdoDinner.Checked) time = "저녁";
// 결과 출력
string foodResult = foods.Count > 0 ? string.Join(", ", foods) : "선택 안 함";
string result = $"선택한 음식: {foodResult}, 음료: {drink}, 시간대: {time}";
lblResult.Text = result;
}
728x90
'Study > C#' 카테고리의 다른 글
C# Windows Forms 강의 5편: Panel과 FlowLayoutPanel 컨트롤 (0) | 2025.02.08 |
---|---|
C# Windows Forms 강의 4편: ComboBox와 ListBox (0) | 2025.02.07 |
C# Windows Forms 강의 2편: 기본 컨트롤 1 - Label, TextBox, Button (0) | 2025.02.05 |
C# 윈폼 1편: 첫 데스크톱 애플리케이션 만들기 (0) | 2025.02.04 |
C# 12편: ADO.NET으로 데이터베이스와 상호작용하기 (0) | 2024.10.31 |