[VB] 리스트박스에서 현재 선택한 아이템의 값 가져오기

  1. VB 의 리스트박스에서 현재 선택한 아이템의 값을 가져오려면,
  2. ListIndex 로 현재 선택된 아이템의 번호를 가져오고,
  3. List 속성을 이용해 해당 아이템의 값을 가져오면 됩니다.

VB6(Visual Basic 6.0, 비주얼베이직6.0)에서 리스트박스는 아주 유용하게 사용됩니다. 아이템을 쭉 리스트업 해놓고 사용자에게 골라 쓰라고 하기 딱 좋은 구성요소이죠.

그런데 이 리스트박스를 사용할때 비슷비슷한 속성과 메소드가 많아서 항상 좀 헷갈리는 부분이 있어서 정리해봅니다.

리스트박스에 나열된 아이템 중 사용가가 선택한 아이템의 값을 가져오는 간단한 예제를 살펴 보도록 하겠습니다.

리스트박스에서 선택된 값을 가져오기

리스트박스에서 선택된 항목의 값을 가져오기 위해서는 두가지 속성을 사용 하면 됩니다. 선택된 항목이 리스트박스 아이템 중 몇번째에 위치하는지를 나타내는 속성과, 선택된 아이템의 값은 무엇인지 알아내는 속성이 필요합니다.

예제의 상황은 ListBox 라는 ID 의 리스트박스에 주식의 코드가 아이템으로 들어 있고, 사용자가 해당 리스트박스를 더블클릭 했을 때, 리스트박스에서 선택된 아이템의 값(주식의 코드)을 가져오는 것입니다.

전체 코드는 아래와 같습니다.

Private Sub ListBox_DblClick()

    Dim Index   as Double
    Dim StockID as String

    Index = ListBox.ListIndex
    StockID = ListBox.List(Index)

    '가져온 주식코드(StockID) 를 이용할 작업을 아래에 추가
    ...

End Sub

ListIndex: 선택된 아이템의 번호 알아내기

리스트박스에서 선택된 아이템의 번호를 알아내기 위해서는 리스트박스의 ListIndex 속성을 사용 하면 됩니다. 참고로 리스트박스의 아이템들은 순서대로 0 부터 고유의 번호를 가지고 있습니다. 1이 시작이 아니라 0이 시작번호입니다.

Index = ListBox.ListIndex

Index 라는 변수에 리스트박스의 현재 선택된 아이템의 번호를 담아 줍니다.

List(): 해당 번호의 아이템 값 가져오기

이제 사용자가 선택한 아이템의 번호를 알게 되었으니, 해당 아이템의 값을 가져오면 됩니다. 이를 위해서는 List() 속성을 사용하면 됩니다. List 속성의 파라미터로 위에서 획득한 아이템의 번호를 넣어주면 됩니다.

StockID = ListBox.List(Index)

리스트박스에서 해당 아이템의 값을 가져와 StockID 라는 변수에 담는 작업입니다.

예를들어 사용자가 리스트박스의 다섯번째 아이템을 더블클릭했다면 List(4) 속성을 이용해 StockID 라는 변수에 값이 담기게 됩니다. 다시 말하지만 리스트박스의 아이템 넘버링 시작은 0 부터 입니다.


이 과정이 어려운건 아니지만, 리스트박스에 Index 나 기타 이름이 비슷한 속성들이 많아서 헷갈릴수 있으니 기억 하도록 합시다.