[Windows Forms 응용 with C#] 2.3 ComboBox, ListBox, CheckListBox 사용 실습

이번에는 ComboBox, ListBox, CheckListBox 컨트롤의 사용법을 알아봅시다. 이들 컨트롤은 Items 컬렉션 속성을 갖고 있어 요소 개체를 보관하고 이들의 정보를 화면에 표시하는 역할을 수행합니다.

우리는 이들 컨트롤에 요소를 추가하거나 삭제할 수 있고 선택 항목을 변경하였을 때 이에 관한 이벤트 처리를 하는 방법을 살펴볼 것입니다. 그리고 프로그램 방식으로 전체 요소의 개수를 알아내고 선택 항목이 무엇인지 확인하는 작업을 수행할 것입니다. 특히 CheckListBox 컨트롤은 요소 항목이 Checked 상태인지 여부도 확인할 수 있습니다.

[그림 2.5] 실행화면
[그림 2.5] 실행화면
 콤보 박스는 텍스트 박스처럼 입력도 할 수 있습니다. 여기서는 콤보 박스에 텍스트를 입력한 후 추가 버튼을 누르면 콤보 박스 항목에 추가합니다. 삭제 버튼을 누르면 선택 항목을 삭제합니다. 그리고 추가하거나 삭제 및 선택 항목이 바뀌면 실시간으로 맨 아래에 있는 Label 컨트롤에 메시지를 표시합니다.

리스트 박스와 체크 리스트 박스도 콤보 박스와 비슷하게 처리할 것입니다. 다른 점은 항목을 추가하기 위한 별도의 텍스트 상자가 있다는 점입니다.

마지막으로 요약 버튼을 클릭하면 각 박스의 항목 개수와 선택 항목을 리스트 박스에 항목 추가합니다. 그리고 체크 리스트 박스에 체크 상태의 항목들도 추가합니다.

[그림 2.6] 컨트롤 배치
[그림 2.6] 컨트롤 배치
 다음은 Form1의 자식 컨트롤의 Name과 형식입니다.

No Name 컨트롤 형식 설명
1 cbox CheckBox 체크 박스
2 btn_add1 Button 체크 박스에 항목 추가
3 btn_remove1 Button 체크 박스의 선택 항목 삭제
4 tbox_1 TextBox 리스트 박스에 추가할 Text
5 btn_add2 Button 리스트 박스에 항목 추가
6 lbox_1 ListBox 리스트 박스
7 btn_remove2 Button 리스트 박스의 선택 항목 삭제
8 tbox_2 TextBox 체크 리스트 박스에 추가할 Text
9 btn_add3 Button 체크 리스트 박스에 항목 추가
10 chbox CheckListBox 체크 리스트 박스
11 bnt_remove3 Button 체크 리스트 박스의 선택 항목 삭제
12 btn_summary Button 전체 요약
13 lbox_2 ListBox 요약 정보 표시할 리스트 박스
14 lb_msg Label 사건 변화를 표시할 Label

콤보 박스에 항목을 추가하는 btn_add1 컨트롤의 클릭 이벤트 핸드러를 등록하세요.

콤보 박스에 입력한 문자열은 Text 속성으로 가져오기 할 수 있습니다. 이를 콤보 박스의 항목을 보관하는 Items 컬렉션 속성에 추가합니다.

그리고 메시지를 표시할 lb_msg의 Text 속성에 정보를 설정하고 cbox의 Text 속성을 빈 문자열로 설정합니다.

cbox의 선택 항목 변경 이벤트 핸들러를 등록합니다.

선택 항목의 인덱스는 SelectedIndex 속성으로 가져오기 할 수 있습니다. 만약 이 값이 -1이면 선택 항목이 없는 것입니다.

선택 항목은 SelectedItem으로 참조할 수 있습니다.

콤보 박스의 선택 항목을 삭제하는 버튼의 클릭 이벤트 핸들러를 등록합니다.

선택 항목이 없으면 이벤트 핸들러를 종료합니다.

선택 항목의 정보를 가져와 메시지 문자열을 만듭니다.

그리고 콤보 박스의 Items 컬렉션 속성의 RemoveAt 메서드를 이용하여 선택 항목인덱스를 전달해 항목을 삭제합니다.

리스트 박스 사용법은 콤보 박스 사용법과 매우 흡사합니다. 먼저 리스트 박스에 항목을 추가하는 버튼의 클릭 이벤트 핸들러를 등록하여 작성하세요.

리스트 박스의 선택 항목을 삭제하는 버튼의 클릭 이벤트 핸들러도 등록하여 구현합시다.

리스트 박스의 선택 항목 변경 이벤트 핸들로도 등록하여 구현합시다.

체크 리스트 박스에 항목을 추가하는 부분도 크게 다르지 않습니다.

체크 리스트 박스에 항목을 삭제하는 부분도 구현합시다.

체크 리스트 박스의 선택 항목 변경 이벤트 핸들러도 등록하여 구현하세요.

마지막으로 요약 버튼 클릭 이벤트 핸들러를 등록하여 구현합시다.

먼저 요약 정보를 표시할 리스트 박스의 항목을 지웁니다.

그리고 각 박스의 항목 개수와 선택 항목을 추가합니다.

체크 리스트 박스의 체크 상태의 항목은 CheckedItems 컬렉션 속성에 있습니다. 이를 이용하여 선택 항목들을 순차적으로 추가하세요.

이제 빌드한 후에 확인해 보세요.

▷Form1.cs