Study/C#

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

wawManager 2025. 2. 7. 12:00
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