본문 바로가기
Study/C#

C# Windows Forms 강의 4편: ComboBox와 ListBox

by wawManager 2025. 2. 7.
728x90

1. 강의 개요

이번 강의에서는 Windows Forms에서 많이 사용하는 ComboBoxListBox를 배웁니다.
ComboBox는 드롭다운 메뉴를 통해 단일 선택을 처리하며, ListBox는 단일 또는 다중 선택이 가능한 목록을 제공합니다.
이 두 컨트롤을 활용해 데이터를 선택하고, 그 결과를 프로그램에서 처리하는 방법을 알아보겠습니다.


2. 학습 목표

  1. ComboBox와 ListBox의 사용법과 주요 속성 이해.
  2. 단일 선택 및 다중 선택 처리 방법 학습.
  3. 사용자 선택에 따라 결과를 출력하는 간단한 프로그램 작성.

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를 사용한 선택 항목 출력 프로그램

요구사항

  1. 사용자가 ComboBox에서 색상을 선택합니다.
  2. 사용자가 ListBox에서 과일을 다중 선택합니다.
  3. 선택한 항목들을 확인 버튼을 눌러 결과를 출력합니다.

폼 구성

컨트롤 타입 이름 텍스트 위치 (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. 실행 결과

  1. ComboBox에서 색상을 선택하고, ListBox에서 과일을 다중 선택.
  2. "선택 확인" 버튼을 클릭하면 메시지 창에 결과가 출력됩니다.

예시 1

  • 선택한 색상: "빨강"
  • 선택한 과일: "사과, 포도"
  • 출력 메시지:
    선택한 색상: 빨강
    선택한 과일: 사과, 포도
    

예시 2

  • 선택하지 않은 경우:
    선택한 색상: 선택 없음
    선택한 과일: 선택 없음
    


7. 주요 개념 요약

  1. ComboBox는 단일 선택을 처리하며, SelectedItem 속성으로 선택된 항목을 가져옵니다.
  2. ListBox는 단일 및 다중 선택을 모두 지원하며, SelectedItems 속성을 사용해 선택된 모든 항목을 가져옵니다.
  3. Items.AddRange 메서드를 사용하면 여러 항목을 간단히 추가할 수 있습니다.

 

728x90