Study/C#
C# Windows Forms 강의 4편: ComboBox와 ListBox
wawManager
2025. 2. 7. 12:00
728x90
1. 강의 개요
이번 강의에서는 Windows Forms에서 많이 사용하는 ComboBox와 ListBox를 배웁니다.
ComboBox는 드롭다운 메뉴를 통해 단일 선택을 처리하며, ListBox는 단일 또는 다중 선택이 가능한 목록을 제공합니다.
이 두 컨트롤을 활용해 데이터를 선택하고, 그 결과를 프로그램에서 처리하는 방법을 알아보겠습니다.
2. 학습 목표
- ComboBox와 ListBox의 사용법과 주요 속성 이해.
- 단일 선택 및 다중 선택 처리 방법 학습.
- 사용자 선택에 따라 결과를 출력하는 간단한 프로그램 작성.
3. ComboBox (콤보박스)
ComboBox란?
ComboBox는 드롭다운 형식의 메뉴를 제공하여 사용자에게 단일 선택을 요구할 때 사용합니다.
주요 속성
속성 설명 예제
Items | ComboBox에 항목 추가 또는 가져오기 | cmbColors.Items.Add("빨강"); |
SelectedItem | 현재 선택된 항목 가져오기 | string color = cmbColors.SelectedItem?.ToString(); |
DropDownStyle | 드롭다운 스타일 설정 (DropDownList 등) | cmbColors.DropDownStyle = ComboBoxStyle.DropDownList; |
사용 예제
cmbColors.Items.AddRange(new string[] { "빨강", "파랑", "노랑", "초록" });
cmbColors.DropDownStyle = ComboBoxStyle.DropDownList;
string selectedColor = cmbColors.SelectedItem?.ToString() ?? "선택 없음";
4. ListBox (리스트박스)
ListBox란?
ListBox는 여러 항목을 나열하며, 단일 또는 다중 선택을 처리할 수 있는 컨트롤입니다.
주요 속성
속성 설명 예제
Items | ListBox에 항목 추가 또는 가져오기 | lstFruits.Items.Add("사과"); |
SelectedItem | 현재 선택된 항목 가져오기 | string fruit = lstFruits.SelectedItem.ToString(); |
SelectedItems | 선택된 모든 항목 가져오기 (다중 선택 시) | foreach (var item in lstFruits.SelectedItems) { ... } |
SelectionMode | 선택 모드 설정 (Single, MultiSimple) | lstFruits.SelectionMode = SelectionMode.MultiExtended; |
사용 예제
lstFruits.Items.AddRange(new string[] { "사과", "바나나", "포도", "딸기" });
lstFruits.SelectionMode = SelectionMode.MultiExtended;
foreach (var item in lstFruits.SelectedItems)
{
Console.WriteLine(item.ToString());
}
5. 실습: ComboBox와 ListBox를 사용한 선택 항목 출력 프로그램
요구사항
- 사용자가 ComboBox에서 색상을 선택합니다.
- 사용자가 ListBox에서 과일을 다중 선택합니다.
- 선택한 항목들을 확인 버튼을 눌러 결과를 출력합니다.
폼 구성
컨트롤 타입 이름 텍스트 위치 (X, Y) 크기 (Width x Height)
Label | lblColor | "색상을 선택하세요:" | (20, 20) | (150 x 20) |
ComboBox | cmbColors | (초기 선택 없음) | (20, 50) | (200 x 28) |
Label | lblFruits | "과일을 선택하세요:" | (20, 100) | (150 x 20) |
ListBox | lstFruits | (초기 선택 없음) | (20, 130) | (200 x 104) |
Button | btnShowSelection | "선택 확인" | (20, 250) | (200 x 30) |
코드 작성
Form1.cs
ComboBox와 ListBox에 항목을 추가하고, 버튼 클릭 시 선택된 항목을 확인하는 코드를 작성합니다.
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
InitializeComboBoxAndListBox();
}
private void InitializeComboBoxAndListBox()
{
// ComboBox 항목 추가
cmbColors.Items.AddRange(new string[] { "빨강", "파랑", "노랑", "초록" });
// ListBox 항목 추가
lstFruits.Items.AddRange(new string[] { "사과", "바나나", "포도", "딸기" });
}
private void btnShowSelection_Click(object sender, EventArgs e)
{
// ComboBox에서 선택된 항목 가져오기
string selectedColor = cmbColors.SelectedItem?.ToString() ?? "선택 없음";
// ListBox에서 선택된 항목 가져오기
List<string> selectedFruits = new List<string>();
foreach (var item in lstFruits.SelectedItems)
{
selectedFruits.Add(item.ToString());
}
// 선택된 항목을 메시지박스로 출력
string fruits = selectedFruits.Count > 0 ? string.Join(", ", selectedFruits) : "선택 없음";
MessageBox.Show($"선택한 색상: {selectedColor}\n선택한 과일: {fruits}", "결과");
}
}
}
6. 실행 결과
- ComboBox에서 색상을 선택하고, ListBox에서 과일을 다중 선택.
- "선택 확인" 버튼을 클릭하면 메시지 창에 결과가 출력됩니다.
예시 1
- 선택한 색상: "빨강"
- 선택한 과일: "사과, 포도"
- 출력 메시지:
선택한 색상: 빨강 선택한 과일: 사과, 포도
예시 2
- 선택하지 않은 경우:
선택한 색상: 선택 없음 선택한 과일: 선택 없음
7. 주요 개념 요약
- ComboBox는 단일 선택을 처리하며, SelectedItem 속성으로 선택된 항목을 가져옵니다.
- ListBox는 단일 및 다중 선택을 모두 지원하며, SelectedItems 속성을 사용해 선택된 모든 항목을 가져옵니다.
- Items.AddRange 메서드를 사용하면 여러 항목을 간단히 추가할 수 있습니다.
728x90