달나라 노트

C# : ListBox, ComboBox 본문

C#/C#

C# : ListBox, ComboBox

CosmosProject 2022. 4. 4. 19:52
728x90
반응형

 

 

 

ListBox와 ComboBox는 여러 요소들 중 하나를 선택할 수 있는 기능을 제공합니다.

 

ListBox와 ComboBox의 차이는 아래와 같습니다.

ListBox -> 요소들을 한번에 모두 나타내줍니다. 요소를 한 화면에 나타내지 못할 경우 스크롤을 발생시킵니다.

ComboBox -> 요소들을 드롭다운에 나타내줍니다.

 

 

먼저 ListBox를 봅시다.

 

using System;
using System.Windows.Forms;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        ListBox list_box = new ListBox();
        list_box.Parent = fm;

        string[] arr_fruits = { "Apple", "Banana", "Peach", "Watermelon", "Grape" };

        for (int i = 0; i < arr_fruits.Length; i++)
        {
            list_box.Items.Add(arr_fruits[i]);
        }


        Application.Run(fm);
    }
}

 

위 코드를 실행하면 아래와 같은 Window가 뜹니다.

 

여러 요소들이 List Box안에 나타내져 있고 그 요소들을 선택할 수 있습니다.

 

 

 

 

 

        ListBox list_box = new ListBox();
        list_box.Parent = fm;

        string[] arr_fruits = { "Apple", "Banana", "Peach", "Watermelon", "Grape" };

        for (int i = 0; i < arr_fruits.Length; i++)
        {
            list_box.Items.Add(arr_fruits[i]);
        }

 

ListBox는 ListBox class를 이용해서 생성할 수 있습니다.

 

ListBox에 요소를 추가할 때에는 ListBox.Items.Add method를 이용할 수 있습니다.

그래서 위 예시에서는 list box에 추가할 요소들을 담은 Array를 생성해두고 for loop를 이용해서 List Box에 요소들을 추가하고있습니다.

 

 

 

 

 

 

아래 코드는 List Box에 Event를 등록한 예시입니다.

List Box에서 선택된 요소가 바뀔 때 마다 어떤 요소가 선택되었는지를 나타내주는 Event입니다.

 

using System;
using System.Windows.Forms;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        Label lbl = new Label();
        lbl.Parent = fm;
        lbl.Width = 200;
        lbl.Height = 20;

        ListBox list_box = new ListBox();
        list_box.Parent = fm;
        list_box.Top = lbl.Bottom;

        string[] arr_fruits = { "Apple", "Banana", "Peach", "Watermelon", "Grape" };

        for (int i = 0; i < arr_fruits.Length; i++)
        {
            list_box.Items.Add(arr_fruits[i]);
        }

        void lb_event_selected(object sender, EventArgs e)
        {
            lbl.Text = list_box.Text;
        }
        list_box.SelectedIndexChanged += new EventHandler(lb_event_selected);


        Application.Run(fm);
    }
}

 

위 코드를 실행하면 아래와 같은 Window가 뜹니다.

 

 

그리고 뭔가 하나를 선택하면 선택한 항목의 텍스트가 표시되는 것을 볼 수 있습니다.

 

 

 

Event를 설정하는 부분을 봅시다.

 

        void lb_event_selected(object sender, EventArgs e)
        {
            lbl.Text = list_box.Text;
        }
        list_box.SelectedIndexChanged += new EventHandler(lb_event_selected);

먼저 Event가 발생했을 때 어떤 동작을 할지에 대한 내용을 담은 lb_event_selected method를 생성합니다.

 

lb_event_selected method의 내용을 보면 Label의 Text(lbl.Text)를 list_box에서 선택된 Text(list_box.Text)로 바꾸는 내용을 담고 있습니다.

 

그리고 이 method를 list_box의 SelectedIndexChanged에 등록하였습니다.

SelectedIndexChanged는 list_box에서 선택된 항목이 변경되었을 때 발생하는 Event라는 의미입니다.

 

 

 

 

 

 

 

 

 

다음은 ComboBox입니다.

아래 코드를 봅시다.

 

using System;
using System.Windows.Forms;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        ComboBox combo_box = new ComboBox();
        combo_box.Parent = fm;

        string[] arr_fruits = { "Apple", "Banana", "Peach", "Watermelon", "Grape" };

        for (int i = 0; i < arr_fruits.Length; i++)
        {
            combo_box.Items.Add(arr_fruits[i]);
        }


        Application.Run(fm);
    }
}

 

위 코드를 실행하면 아래와같은 Window가 뜹니다.

List Box와 동일하지만 항목이 표시되는 방식이 드롭다운으로 표시된다는 차이만 있습니다.

 

 

 

 

 

 

 

아래 코드는 Combo Box에 Event를 등록한 예시입니다.

Combo Box에서 선택된 요소가 바뀔 때 마다 어떤 요소가 선택되었는지를 나타내주는 Event입니다.

Event의 흐름과 사용되는 내용은 위에서 봤던 List Box의 Event와 동일합니다.

 

using System;
using System.Windows.Forms;

class MyProgram
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Width = 500;
        fm.Height = 300;

        Label lbl = new Label();
        lbl.Parent = fm;
        lbl.Width = 200;
        lbl.Height = 20;

        ComboBox combo_box = new ComboBox();
        combo_box.Parent = fm;
        combo_box.Top = lbl.Bottom;

        string[] arr_fruits = { "Apple", "Banana", "Peach", "Watermelon", "Grape" };

        for (int i = 0; i < arr_fruits.Length; i++)
        {
            combo_box.Items.Add(arr_fruits[i]);
        }

        void lb_event_selected(object sender, EventArgs e)
        {
            lbl.Text = combo_box.Text;
        }
        combo_box.SelectedIndexChanged += new EventHandler(lb_event_selected);


        Application.Run(fm);
    }
}

 

위 코드를 실행하면 아래와 같은 화면이 뜹니다.

 

 

그리고 드롭다운을 클릭해서 원하는 항목을 클릭하면

선택된 항목이 표시되는 것도 볼 수 있습니다.

 

 

 

 

 

 

 

728x90
반응형

'C# > C#' 카테고리의 다른 글

C# : MenuStrip, ToolStripMenuItem  (0) 2022.04.04
C# : TextBox  (0) 2022.04.04
C# : RadioButton, GroupBox  (0) 2022.04.04
C# : CheckBox  (0) 2022.04.03
C# : Button  (0) 2022.04.03
Comments