[VB] 리스트박스에서 각 아이템의 체크박스에 체크 표시 하는 방법을 알아보자

  1. VB의 리스트박스에서 Style 속성을 “확인란(1)” 으로 설정하면,
  2. 체크박스가 있는 리스트 박스를 이용할 수 있어요.
  3. 코드상에서 각 아이템의 체크박스를 체크 하려면 Seleted(n) 을 True 로 설정 하면 됩니다.

VB(Visual Basic, 비주얼베이직)에서 리스트박스는 체크하는 아이템 형태(VB에서는 확인란으로 표시)로 사용 할 수 있습니다.

리스트박스의 속성에서 Style 을 확인란(1) 값으로 설정하면 아이템 왼쪽에 체크박스가 생기면서 사용자가 체크 할 수 있는 리스트박스가 됩니다.

이제 이 리스트박스의 각 아이템 체크박스를 코드상에서 체크하는 방법을 알아봅시다.

Selected(n) = True

결론부터 말하자면 리스트박스의 각 아이템 체크박스를 체크 하기 위해서는, 리스트박스의 Selected(n) 속성을 True 값으로 설정하면 됩니다. 여기서 n 은 리스트박스의 각 아이템 고유번호입니다.

만약 특정 아이템을 체크 해제 하고 싶다면 Selected(n) 의 값을 False 로 설정하면 됩니다.

간단한 예제

간단한 예제를 봅시다. 리스트박스(Lst)에 수많은 아이템이 있는데, 그 아이템들 중에 “0722” 라는 String(Str) 을 포함한 아이템을 체크 해야 하는 상황입니다.

Dim i       as Double
Dim Str     as String

Str = "0722"

For i = 0 to Lst.ListCount - 1
    If InStr(1, Lst.List(i), Str) > 0 Then
        Lst.Selected(i) = True
    End If
Next i

리스트박스 아이템은 0 부터 시작

For i = 0 to Lst.ListCount - 1

    ...

Next i

혼동할 수 있는 부분입니다. 리스트박스에 담긴 아이템의 고유번호는 0 부터 시작합니다. 리스트박스의 아이템 개수는 .ListCount 속성으로 확인 할 수 있습니다.

예를들어 리스트박스에 10개의 아이템이 있다면, 아이템의 고유번호는 0~9 까지로 설정 될 것이고, ListCount 값은 10 입니다.

따라서 For 문을 0 에서 부터 ListCount - 1 까지 실행해야 합니다.

문자열이 포함되어 있다면 Seleted(i) 값을 True 로 설정

If InStr(1, Lst.List(i), Str) > 0 Then
    Lst.Selected(i) = True
End If

이제 For 문이 실행 되면서 리스트박스의 아이템을 하나씩 검사합니다. InStr 함수로 각 아이템에 원하는 문자열(Str)이 포함 되어 있는지 확인하고, 포함되어 있다면 해당 아이템(i)의 Selected 값을 True 로 지정 하는 것입니다.


직접 해보면 생각보다 복잡하지 않습니다. 전역 함수나 프로시져로 만들어 놓고 여러곳에서 사용하면 간편합니다.