1. 리스트 박스


리스트 박스를 사용하여 데이터, 파일, 폴더 등을 하나의 카테고리에 묶어 화면에 표시할수 있습니다. 

리스트 박스는 '콤보 박스'와 매우 비슷합니다. 콤보 박스 같은경우에는 하나의 항목만 선택이 가능하고, 리스트 박스는 MultiSelect 속성을 이용하여 다중 선택이 가능합니다. 그리고, 콤보 박스 같은경우에는 드롭다운되어 나타나지만, 리스트 박스의 경우는 직사각형 모양의 컨트롤로, 데이터가 추가되다 공간이 부족해지면 자동으로 스크롤바가 표시됩니다. 한번 속성을 살펴봅시다.


Style: 0이 기본 설정입니다. 0은 표준, 1은 확인란으로 확인란을 선택하면 각 항목 앞에 체크박스가 생깁니다. 

Sorted: 텍스트가 사전순으로 자동 정렬됩니다. 기본값은 False입니다.

MultiSelect: True로 두면 컨트롤에서 다중 선택이 가능하며 False로 두면 하나의 항목만 선택할 수 있습니다.


이제 직접 새 프로젝트를 만들어 리스트 박스를 사용해봅시다. 만드셨으면, 도구 상자에 있는 리스트 박스 아이콘을 클릭하여 폼에 추가합시다.



이렇게 추가하셨으면 리스트에 항목을 우리가 직접 추가해봅시다.


코드 편집으로 돌아가 아래와 같이 작성해줍시다.


Private Sub Form_Load()

List1.AddItem "항목1" ' List1에 "항목1"을 추가합니다.

List1.AddItem "항목2"

List1.AddItem "항목3"

List1.AddItem "항목4"

List1.AddItem "항목5"

List1.AddItem "항목6"

List1.AddItem "항목7"

End Sub


프로그램을 실행해보면 리스트 박스에 항목1부터 항목7까지 추가된걸 확인하실 수 있습니다.

이것을 응용하여 텍스트 박스와 커맨드 박스를 추가해서 사용자로부터 데이터를 입력받아 리스트 박스에 추가시키게 할수 있습니다.

폼에 텍스트 박스 하나와 커맨드 박스 하나를 적절히 배치합니다.


그리고 커맨드박스를 더블클릭하여 코드 편집창으로 돌아갑니다.

추가 버튼을 클릭하면 텍스트1에 입력된 텍스트가 리스트박스에 추가되는 이벤트를 작성해봅시다.

Private Sub Command1_Click()
List1.AddItem Text1.Text ' 텍스트1에 입력된 텍스트를 리스트1에 추가합니다.
Text1.Text = "" ' 텍스트1의 내용을 비웁니다.
Text1.SetFocus ' 텍스트1에 포커스를 잡아줍니다.
End Sub

확인해보면, 텍스트1에 아무 내용이나 집어넣고 추가를 누르시면 그 내용이 리스트박스에 추가됩니다.

이제 추가를 알았으니, 제거를 알아보도록 합시다.
커맨드 박스를 하나 더 만들고, Caption에 "제거"를 입력합니다.


이번에도 똑같이, 제거를 누르면 선택된 항목을 제거하는 이벤트를 작성해봅시다.

  
Private Sub Command2_Click()
List1.RemoveItem List1.ListIndex 
' 선택된 항목의 Index 번호를 반환하면, 반환된 그 값으로 리스트에서 제거합니다.
End Sub

이제 항목을 추가하고 선택하여 제거 버튼을 누르면 정상적으로 리스트박스에서 제거가 되는걸 확인할수 있습니다.