다중 항목 컨트롤: ListBox 및 ComboBox 컨트롤 사용
업데이트: 2007년 11월
이 단원에서는 목록에 항목을 추가하고 목록에서 항목을 제거하는 방법을 배웁니다. 또한 사용자가 목록의 항목을 선택할 때 특정 작업을 수행하는 방법을 배웁니다.
사용자에게 선택 목록을 제공하려면 ListBox 컨트롤이나 ComboBox 컨트롤에 항목 목록을 표시합니다.
ListBox 컨트롤을 사용하면 여러 개의 항목을 동시에 표시할 수 있으므로 사용자가 보다 긴 목록을 스크롤할 수 있습니다. 사용자가 항목을 선택하면 해당 항목은 다음 그림과 같이 목록에서 강조 표시됩니다.
ListBox 컨트롤
ComboBox 컨트롤은 텍스트 상자와 목록 상자를 결합한 것입니다. 기본적으로 콤보 상자는 텍스트 상자로 표시되지만 사용자가 드롭다운 화살표를 클릭하면 목록이 나타납니다. 사용자가 항목을 선택하면 해당 항목은 다음 그림과 같이 기본 보기에서 강조 표시됩니다.
ComboBox 컨트롤
목록 상자에 항목을 추가하는 과정과 콤보 상자에 항목을 추가하는 과정은 비슷합니다. ListBox 컨트롤의 Add 메서드 및 ComboBox 컨트롤의 Add 메서드를 사용하여 항목을 추가할 수 있습니다.
실습
목록 상자에 항목을 추가하려면
파일 메뉴에서 새 프로젝트를 클릭합니다.
새 프로젝트 대화 상자가 나타납니다.
Windows Forms 응용 프로그램, 확인을 차례로 클릭합니다.
새 Windows Forms 프로젝트가 열립니다.
폼에 ListBox 컨트롤을 추가하고 기본 이름 ListBox1을 그대로 적용합니다.
폼을 두 번 클릭하여 코드 편집기에 기본 이벤트 처리기를 추가합니다.
Form_Load 이벤트 처리기에서 다음 코드를 추가하여 목록에 항목을 추가합니다.
With Me.ListBox1.Items .Add("red") .Add("blue") .Add("green") .Add("yellow") .Add("orange") .Add("pink") .Add("brown") .Add("black") End With
F5 키를 눌러 프로그램을 실행합니다.
폼이 열리고 색 목록이 들어 있는 ListBox가 표시됩니다.
프로그램을 종료합니다.
선택한 항목이 변경될 때 작업 수행
사용자가 목록 상자에서 항목을 선택할 때 색 표시와 같은 특정 작업을 수행할 수 있습니다. 이렇게 하려면 ListBox의 SelectedIndexChanged 이벤트 처리기에 코드를 작성합니다. ComboBox 컨트롤의 해당 이벤트를 사용할 수도 있습니다.
SelectedItem 속성을 사용하여 목록이 항목이 선택되었는지 확인할 수 있습니다. Color 개체의 FromName 메서드를 사용하여 컨트롤의 BackColor 속성에 목록에서 선택한 색을 지정할 수 있습니다.
목록 상자에서 선택한 색을 표시하려면
폼에 TextBox 컨트롤을 추가하고 기본 이름 TextBox1을 그대로 적용합니다.
ListBox 컨트롤을 두 번 클릭하여 코드 편집기에 기본 이벤트 처리기를 추가합니다.
ListBox_SelectedIndexChanged 이벤트 처리기에서 다음 코드를 추가하여 텍스트 상자에 색을 표시합니다. 텍스트 상자의 BackColor 속성에 ColorName 변수를 지정하기 전에 해당 변수에 값이 들어 있는지 확인합니다.
Dim ColorName As String = CStr(ListBox1.SelectedItem) If ColorName IsNot Nothing Then Me.TextBox1.BackColor = _ System.Drawing.Color.FromName(ColorName) End If
F5 키를 눌러 프로그램을 실행합니다.
폼이 열리면 목록 상자의 항목을 클릭하여 선택한 색이 텍스트 상자에 표시되는지 확인합니다.
프로그램을 종료합니다.
항목이 목록에 있는지 여부 확인
목록에 항목을 추가할 때 기존 항목과 중복되지 않도록 하려는 경우가 있습니다. 예를 들어 사용자가 목록 상자의 항목을 두 번 클릭하여 콤보 상자에 복사할 수 있도록 할 수 있습니다. 이때 해당 항목이 콤보 상자에 이미 있으면 다시 추가되지 않아야 합니다. Contains 메서드를 사용하여 항목이 콤보 상자에 이미 있는지 여부를 확인할 수 있습니다. 목록 상자의 해당 Contains 메서드를 사용할 수도 있습니다.
콤보 상자에 항목을 추가하려면
폼에 ComboBox 컨트롤을 추가하고 기본 이름 ComboBox1을 그대로 적용합니다.
폼을 마우스 오른쪽 단추로 클릭하고 코드 보기를 클릭하여 코드 편집기를 엽니다.
코드 편집기의 클래스 이름 드롭다운 목록에서 ListBox1을 클릭합니다.
메서드 이름 드롭다운 목록에서 DoubleClick을 클릭하여 이벤트 처리기를 만듭니다.
ListBox1_DoubleClick 이벤트 처리기에 다음 코드를 추가하여 콤보 상자에 항목을 추가합니다. 빈 목록 상자가 있을 수 있으므로 선택한 항목을 추가하기 전에 해당 항목이 비어 있지 않은지 확인해야 합니다.
If ListBox1.SelectedItem IsNot Nothing Then If Not ComboBox1.Items.Contains(Me.ListBox1.SelectedItem) Then Me.ComboBox1.Items.Add(Me.ListBox1.SelectedItem) End If Me.ComboBox1.SelectedItem = Me.ListBox1.SelectedItem End If
F5 키를 눌러 프로그램을 실행합니다.
목록 상자의 항목을 두 번 클릭하고 해당 항목이 콤보 상자에 한 번만 추가되는지 확인합니다.
프로그램을 종료합니다.
목록 상자에서 항목 삭제
Remove 메서드를 사용하여 목록 상자에서 항목을 삭제할 수 있습니다. 예를 들어 목록 상자의 항목을 콤보 상자에 복사하는 대신 해당 항목을 이동할 수 있습니다. 먼저 콤보 상자에 항목을 추가하고 목록 상자에서 해당 항목을 삭제하여 항목을 이동할 수 있습니다.
목록 상자에서 항목을 삭제하려면
ListBox_DoubleClick 이벤트 처리기에서 End If 문 위에 다음 코드를 추가합니다.
Me.ListBox1.Items.Remove(Me.ListBox1.SelectedItem)
F5 키를 눌러 프로그램을 실행합니다.
목록 상자의 항목을 두 번 클릭하고 해당 목록이 목록 상자에서 제거되고 콤보 상자에 추가되는지 확인합니다.
다음 단계
이 단원에서는 목록에 항목을 추가하고 목록에서 항목을 제거하는 방법을 배웠습니다. 또한 사용자가 항목을 선택할 때 작업을 수행하는 방법을 배웠습니다. 다음 단원에서는 날짜 및 시간을 표시하는 컨트롤을 사용하는 방법을 배웁니다.
다음 단원: 날짜 표시: MonthCalendar 및 DateTimePicker 컨트롤 사용
참고 항목
참조
ComboBox 컨트롤 개요(Windows Forms)