Visual Basic 6.0 사용자를 위한 ListBox 컨트롤
업데이트: 2007년 11월
Visual Basic 6.0의 ListBox 컨트롤은 Visual Basic 2008에서 ListBox 컨트롤 또는 CheckedListBox 컨트롤로 대체되었습니다. 일부 속성, 메서드, 이벤트 및 상수의 이름이 다르고 경우에 따라서는 동작도 다릅니다.
개념적 차이
ListBox 선택
Visual Basic 6.0에서 ListBox 컨트롤의 Style 속성은 각 텍스트 항목 옆에 확인란을 표시할지 여부를 결정합니다. MultiSelect 속성이 False로 설정되어 있는 경우에도 옆에 있는 확인란을 선택하면 ListBox에서 여러 항목을 선택할 수 있습니다. 항목의 선택 상태를 프로그래밍 방식으로 확인하는 방법은 없습니다. 이러한 기능이 필요한 경우 대신 ListView 컨트롤을 사용해야 합니다.
Visual Basic 2008에서는 새 CheckedListBox 컨트롤이 각 항목 옆에 확인란을 표시합니다. ListBox 컨트롤에서는 더 이상 확인란을 표시할 수 없습니다. CheckedListBox 컨트롤을 사용하면 CheckedListBox.CheckedItemCollection 컬렉션을 통해 각 항목의 선택 상태를 프로그래밍 방식으로 확인할 수 있습니다.
Columns 속성
Visual Basic 6.0에서 Columns 속성은 표시할 열 수를 지정하는 정수를 취했습니다.
Visual Basic 2008에서 MultiColumn 속성은 부울 값을 취하며 ColumnWidth 속성은 픽셀 단위로 너비를 지정하는 정수를 취합니다. ListBox 컨트롤의 너비가 런타임에 변경되는 경우 각 열에 대한 ColumnWidth 속성을 설정해야 할 수도 있습니다.
ItemCheck 이벤트
Visual Basic 6.0 ListBox 컨트롤에서는 ItemCheck 이벤트가 발생할 때 이미 확인 상태가 변경되지만
Visual Basic 2008CheckedListBox 컨트롤에서는ItemCheck 이벤트가 발생할 때 확인 상태가 변경되지 않습니다. 이벤트에 전달되는 ItemCheckEventArgs 인수에서 보류 중인 값을 얻을 수 있습니다.
ListBox 컨트롤에 대한 코드 변경 사항
다음 예제에서는 Visual Basic 6.0과 Visual Basic 2008 간 코딩 기술의 차이점을 보여 줍니다.
ListBox 컨트롤에서 항목을 추가하고 제거하는 방법에 대한 코드 변경 사항
다음 코드에서는 ListBox 항목을 추가하고 제거하는 방법을 보여 줍니다.
' Visual Basic 6.0
' Add an item at the end of the list.
List1.AddItem "Tokyo"
' Insert an item at the top of the list.
List1.AddItem "Copenhagen", 0
' Remove the first item.
List1.RemoveItem 0
'Visual Basic
' Add an item at the end of the list.
ListBox1.Items.Add("Tokyo")
' Insert an item at the top of the list.
ListBox1.Items.Insert(0, "Copenhagen")
' Remove the first item.
ListBox1.Items.RemoveAt(0)
ListBox 컨트롤에서 특정 항목에 액세스하는 방법에 대한 코드 변경 사항
다음 코드에서는 ListBox 항목의 값을 반환하는 방법을 보여 줍니다.
' Visual Basic 6.0
Private Function GetItemText(i As Integer) As String
' Return the text of the item using the index:
GetItemText = ListBox1.List(i)
End Function
' Visual Basic
Private Function GetItemText(ByVal i As Integer) As String
' Return the text of the item using the index:
GetItemText = CStr(ListBox1.Items(i))
End Function
CheckedListBox 컨트롤에서 선택된 항목을 확인하는 방법에 대한 코드 변경 사항
다음 코드에서는 CheckedListBox 컨트롤에서 항목 선택 상태를 확인하는 방법을 보여 줍니다.
' Visual Basic 6.0
' The Visual Basic 6.0 ListBox control didn't support this scenario,
' a ListView control had to be used instead.
Dim s As String
Dim i As Integer
' Loop through all items
For i = 1 To ListView1.ListItems.Count
' If an item is checked, add it to the string
If ListView1.ListItems(i).Checked = True Then
s = s & "Checked Item" & CStr(i) & " = " & _
ListView1.ListItems(i) & vbCrLf
End If
Next
' Determine if any items are checked.
If s <> "" Then
MsgBox s
End If
' Visual Basic
' Determine if there are any items checked.
If CheckedListBox1.CheckedItems.Count <> 0 Then
' If so, loop through all checked items and print results.
Dim x As Integer
Dim s As String = ""
For x = 0 To CheckedListBox1.CheckedItems.Count - 1
s = s & "Checked Item " & CStr(x + 1) & " = " & _
CStr(CheckedListBox1.CheckedItems(x)) & ControlChars.CrLf
Next x
MessageBox.Show(s)
End If
ListBox 컨트롤 속성, 메서드, 이벤트에 해당하는 요소
다음 표에서는 Visual Basic 6.0 속성, 메서드, 이벤트 및 이에 해당하는 Visual Basic 2008 요소를 보여 줍니다. 이름과 동작이 같은 속성, 메서드 및 이벤트는 나열되지 않습니다. 속성 또는 메서드 아래에 들여쓰기되어 있는 부분은 상수를 의미합니다. 다른 설명이 없는 한 모든 Visual Basic 2008 열거형은 System.Windows.Forms 네임스페이스로 매핑됩니다.
이 표에서는 동작의 차이를 설명하는 항목에 대한 링크를 제공합니다. 직접 해당하는 요소가 Visual Basic 2008에 없는 경우에는 다른 방법을 제시하는 항목에 대한 링크를 제공합니다.
속성
Visual Basic 6.0 |
동일한 기능의 Visual Basic 2008 요소 |
||
---|---|---|---|
Appearance |
새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 Appearance 및 BorderStyle 속성을 참조하십시오. |
||
BackColor |
|
||
Columns |
|||
Container |
|||
DataChanged DataField DataFormat DataMember DataSource |
새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 데이터 액세스를 참조하십시오. |
||
DragIcon DragMode |
새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 끌어서 놓기를 참조하십시오. |
||
FontFont FontBold FontItalic FontName FontSize FontStrikethrough FontUnderline |
|
||
ForeColor |
|
||
Height |
|
||
HelpContextID |
새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 도움말 지원을 참조하십시오. |
||
HWnd |
|||
Index |
새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 컨트롤 배열을 참조하십시오. |
||
IntegralHeight |
|||
ItemData |
새롭게 구현되었습니다. 자세한 내용은 ItemData 속성을 업그레이드할 수 없습니다.를 참조하십시오. |
||
Left |
|
||
List |
|||
ListCount |
Count (List.Count) |
||
ListIndex |
|||
MouseIcon |
새롭게 구현되었습니다. 자세한 내용은 사용자 지정 MousePointer를 설정할 수 없습니다.를 참조하십시오. |
||
MousePointer |
상수 목록은 Visual Basic 6.0 사용자를 위한 MousePointer를 참조하십시오. |
||
MultiSelect |
|||
NewIndex |
새롭게 구현되었습니다. 자세한 내용은 NewIndex 속성을 업그레이드할 수 없습니다.를 참조하십시오. |
||
OLEDragMode OLEDropMode |
새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 끌어서 놓기를 참조하십시오. |
||
Parent |
FindForm 메서드 |
||
SelCount |
Count (SelectedItem.Count) |
||
Selected |
GetSelected, SetSelected (ListBox 컨트롤) GetItemChecked, SetItemChecked (CheckedListBox 컨트롤) |
||
Style |
새로운 구현 속성 입니다. 0 – 표준은 CheckedListBox 컨트롤로 매핑되고 1 – 확인란은 CheckedListBox 컨트롤로 매핑됩니다. |
||
ToolTipText |
ToolTip 구성 요소 자세한 내용은 Visual Basic 6.0 사용자를 위한 도구 설명 지원을 참조하십시오. |
||
Top |
|
||
WhatsThisHelpID |
새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 도움말 지원을 참조하십시오. |
||
Width |
|
메서드
이름 |
동일한 기능의 Visual Basic 2008 요소 |
||
---|---|---|---|
AddItem |
|||
Clear |
|||
Drag |
새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 끌어서 놓기를 참조하십시오. |
||
Move |
|
||
OLEDrag |
새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 끌어서 놓기를 참조하십시오. |
||
RemoveItem |
|||
SetFocus |
|||
ShowWhatsThis |
새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 도움말 지원을 참조하십시오. |
||
ZOrder |
BringToFront 또는 SendToBack 메서드 |
이벤트
Visual Basic 6.0 |
동일한 기능의 Visual Basic 2008 요소 |
---|---|
DblClick |
|
DragDrop DragOver |
새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 끌어서 놓기를 참조하십시오. |
GotFocus |
|
ItemCheck |
ItemCheck (CheckedListBox에만 해당) |
LostFocus |
|
OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag |
새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 끌어서 놓기를 참조하십시오. |
Scroll |
새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 TopIndex 속성 및 Scroll 이벤트를 참조하십시오. |
Validate |
업그레이드 참고 사항
업그레이드하는 동안 Visual Basic 6.0 Listbox의 Style 속성이 1 – 확인란으로 설정되어 있는 경우 이 컨트롤은 CheckedListBox 컨트롤로 업그레이드됩니다. 그렇지 않은 경우에는 ListBox 컨트롤로 업그레이드됩니다.