C#/Window

Windows Forms의 ComboBox에 아이템 추가하는 방법들

코샵 2024. 7. 29. 00:54
반응형

Windows Forms 애플리케이션을 개발할 때, ComboBox 컨트롤에 항목을 추가하는 것은 매우 일반적인 작업입니다. 다양한 방법으로 ComboBox에 아이템을 추가할 수 있으므로, 상황에 맞는 적절한 방법을 선택해야 합니다. 이번 포스팅에서는 일반적인 ComboBox 아이템 추가 방법들을 살펴보겠습니다.

1. 단순 문자열 추가

가장 기본적인 방법은 문자열을 하나씩 추가하는 것입니다:

comboBox1.Items.Add("Item 1");
comboBox1.Items.Add("Item 2");
comboBox1.Items.Add("Item 3");

2. 여러 항목 한 번에 추가

문자열 배열을 한 번에 추가할 수도 있습니다:

string[] items = { "Item 1", "Item 2", "Item 3" };
comboBox1.Items.AddRange(items);

3. 리스트로부터 추가

List에 저장된 값들을 ComboBox에 추가할 수 있습니다:

List<string> itemList = new List<string> { "Item 1", "Item 2", "Item 3" };
comboBox1.DataSource = itemList;

4. 객체 리스트 사용 (DisplayMember와 ValueMember 사용)

복잡한 데이터 구조를 ComboBox에 바인딩할 수 있습니다. 이 경우 DisplayMember와 ValueMember 속성을 사용하여 화면에 표시할 텍스트와 실제 값을 지정할 수 있습니다:

public class ComboItem
{
    public string Text { get; set; }
    public int Value { get; set; }
}
List<ComboItem> items = new List<ComboItem>
{
    new ComboItem { Text = "Item 1", Value = 1 },
    new ComboItem { Text = "Item 2", Value = 2 },
    new ComboItem { Text = "Item 3", Value = 3 }
};
comboBox1.DataSource = items;
comboBox1.DisplayMember = "Text";
comboBox1.ValueMember = "Value";

5. Dictionary 사용

Dictionary<string, int>를 ComboBox의 데이터 소스로 사용할 수 있습니다. 이 경우에도 DisplayMember와 ValueMember를 지정해야 합니다.

Dictionary<string, int> items = new Dictionary<string, int>
{
    { "Item 1", 1 },
    { "Item 2", 2 },
    { "Item 3", 3 }
};
comboBox1.DataSource = new BindingSource(items, null);
comboBox1.DisplayMember = "Key";
comboBox1.ValueMember = "Value";

6. ComboBox 초기화 후 아이템 추가

기존에 추가된 아이템을 모두 제거하고 새로운 아이템을 추가할 수 있습니다:

comboBox1.Items.Clear(); // 기존 항목 모두 제거
comboBox1.Items.AddRange(new string[] { "Item 1", "Item 2", "Item 3" });

7. 폼 로드 시 아이템 추가

폼이 로드될 때 ComboBox에 아이템을 추가할 수 있습니다:

private void Form1_Load(object sender, EventArgs e)
{
    comboBox1.Items.AddRange(new string[] { "Item 1", "Item 2", "Item 3" });
}

선택한 후 기본 선택 항목 설정

ComboBox에 아이템을 추가한 후 기본 선택된 아이템을 지정할 수 있습니다:

comboBox1.SelectedIndex = 0; // 첫 번째 항목 선택
// 또는
comboBox1.SelectedItem = "Item 2"; // 특정 항목 선택