Visual Basic 6.0 사용자를 위한 ComboBox 컨트롤

업데이트: 2007년 11월

Visual Basic 6.0의 ComboBox 컨트롤은 Visual Basic 2008에서 Windows Forms ComboBox 컨트롤로 대체되었습니다. 일부 속성, 메서드, 이벤트 및 상수의 이름이 다르고 경우에 따라서는 동작도 다릅니다.

개념적 차이

Change 이벤트

Visual Basic 6.0에서는 컨트롤의 텍스트가 수정되면 ComboBox 컨트롤의 Change 이벤트가 발생합니다. 컨트롤의 목록 부분에서 항목을 선택하면 Change 이벤트가 발생하지 않습니다. 프로그래밍 방식으로 목록에 있는 항목의 텍스트를 변경하는 경우에는 Change 이벤트가 발생하지 않습니다.

Visual Basic 2008에서는 Change 이벤트가 더 이상 존재하지 않습니다. TextChanged 이벤트는 다음과 같은 이유로 텍스트가 변경될 때마다 발생합니다.

  • 텍스트 입력 부분이 수정된 경우

  • 목록에서 항목이 선택된 경우

  • 프로그래밍 방식으로 목록 항목이 수정된 경우

  • AddItem 메서드가 호출된 경우

ItemData 속성

Visual Basic 6.0에서는 디자인 타임에 속성 창에서 ComboBox 컨트롤의 ItemData 속성을 설정하여 ComboBox 항목과 Integer를 연결할 수 있었습니다.

Visual Basic 2008에서는 ItemData 속성이 더 이상 존재하지 않습니다. Microsoft.VisualBasic.Compatibility 라이브러리에는 항목과 Integer를 연결하는 데 사용할 수 있는 SetItemData 함수가 들어 있습니다. 항목을 검색하는 데는 GetItemData 함수를 사용할 수 있습니다.

Locked 속성

Visual Basic 6.0에서는 ComboBox 컨트롤의 Locked 속성이 해당 컨트롤의 텍스트 상자 부분의 편집 가능 여부를 결정합니다.

Visual Basic 2008에서는 Locked 속성이 디자인 타임에 컨트롤을 이동할 수 없게 합니다. Visual Basic 6.0에는 Locked 속성에 직접 해당하는 요소가 없습니다. 그러나 ComboBox 컨트롤의 DropDownStyle 속성을 DropDownList로 설정하면 동일한 결과를 얻을 수 있습니다.

참고   Visual Basic 6.0에서는 Locked 속성을 True로 설정해도 선택 내용을 변경할 수 없습니다. MouseDown 이벤트의 선택 내용을 취소하면 이와 같은 동작을 얻을 수 있습니다.

NewIndex 속성

Visual Basic 6.0에서는 NewIndex 속성을 사용하여 가장 최근에ComboBox 컨트롤에 추가된 항목의 인덱스를 검색했습니다.

Visual Basic 2008에서는 NewIndex 속성이 더 이상 존재하지 않습니다. Item.Add 메서드에서 반환된 값을 사용하면 항목이 추가될 때 해당 항목의 인덱스를 검색할 수 있습니다.

TopIndex 속성

Visual Basic 6.0에서는 TopIndex 속성을 사용하여 맨 위에 표시되는 ComboBox 또는 ListBox 컨트롤의 항목을 지정하는 값을 반환하거나 설정했습니다. 이 속성은 일반적으로 항목을 선택하지 않고 목록을 스크롤하는 데 사용됩니다.

Visual Basic 2008에서 ComboBox 컨트롤은 더 이상 TopIndex 속성을 지원하지 않습니다. 대부분의 경우 Style 속성이 1 - 단순 콤보로 설정되어 있지 않으면 TopIndex 속성을 설정해도 가시적인 효과가 없기 때문에 대부분의 경우 이 점은 문제가 되지 않습니다. 이러한 경우에는 ListBoxTextBox 컨트롤을 사용하여 이러한 동작을 에뮬레이트할 수 있습니다. ListBox 컨트롤은 계속 TopIndex 속성을 지원합니다.

Scroll 이벤트

Visual Basic 6.0의 Scroll 이벤트는 TopIndex 속성과 함께 목록이 스크롤될 때 작업을 수행하는 데 사용됩니다. Visual Basic 2008에서는 Scroll 이벤트를 지원하지 않지만 대부분의 경우 SelectedIndexChanged 이벤트를 대신 사용할 수 있습니다.

기타 차이점

또한, 모든 컨트롤에 적용되는 개념적인 차이가 많습니다(데이터 바인딩, 글꼴 처리, 끌어서 놓기, 도움말 지원 등의 차이 포함). 자세한 내용은 Visual Basic 6.0 사용자를 위한 Windows Forms 개념을 참조하십시오.

ComboBox 컨트롤에 대한 코드 변경 사항

다음 예제에서는 Visual Basic 6.0과 Visual Basic 2008 간 코딩 기술의 차이점을 보여 줍니다.

ComboBox 컨트롤을 읽기 전용으로 만드는 방법에 대한 코드 변경 사항

다음 코드에서는 사용자가 새 항목을 ComboBox 컨트롤에 추가하지 못하게 하는 방법을 보여 줍니다.

' Visual Basic 6.0
Combo1.Locked = True
' Visual Basic
ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList

ComboBox 컨트롤에서 가장 최근에 추가된 항목을 선택하는 방법에 대한 코드 변경 사항

다음 코드에서는 ComboBox 컨트롤에 프로그래밍 방식으로 추가된 항목을 선택하는 방법을 보여 줍니다.

' Visual Basic 6.0
Combo1.AddItem "This is a new item"
Combo1.ListIndex = Combo1.NewIndex
' Visual Basic
Dim i As Integer
i = ComboBox1.Items.Add("This is a new item")
ComboBox1.SelectedIndex = i

ItemData를 연결하는 방법에 대한 Private Sub 코드 변경 사항

다음 코드에서는 직원 번호와 ComboBox 컨트롤에 나열된 각 직원을 연결한 다음 런타임에서 해당 번호를 검색하는 방법을 보여 줍니다.

' Visual Basic 6.0
Private Sub Form_Load
    Combo1.AddItem "Nancy Davolio"
    Combo1.ItemData(Combo1.NewIndex) = 12345
    Combo1.AddItem "Judy Phelps"
    Combo1.ItemData(Combo1.NewIndex) = 67890
End Sub
Private Sub Combo1_Click()
    Label1.Caption = "Empoyee #" & _
    CStr(Combo1.ItemData(Combo1.ListIndex))
End Sub
' Visual Basic
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load

   ComboBox1.Items.Add("Nancy Davolio")
   Microsoft.VisualBasic.Compatibility.VB6. _
      SetItemData(ComboBox1, ComboBox1.Items.Count() - 1, 12345)

   ComboBox1.Items.Add("Judy Phelps")
   Microsoft.VisualBasic.Compatibility.VB6. _
      SetItemData(ComboBox1, ComboBox1.Items.Count() - 1, 67890)
End Sub
' Visual Basic
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

   Label1.Text = "Employee #" & CStr( _
   Microsoft.VisualBasic.Compatibility.VB6. _
      GetItemData(ComboBox1, ComboBox1.SelectedIndex))
End Sub

ComboBox 컨트롤 속성, 메서드, 이벤트에 해당하는 요소

다음 표에서는 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

BackColor

참고:

Visual Basic 2008에서는 색이 다르게 처리됩니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 색 동작을 참조하십시오.

Container

Parent

DataChanged

DataField

DataFormat

DataMember

DataSource

새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 Data 컨트롤을 참조하십시오.

DragIcon

DragMode

새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 끌어서 놓기를 참조하십시오.

Font

FontBold

FontItalic

FontName

FontSize

FontStrikethrough

FontUnderline

Font

참고:

Visual Basic 2008에서는 글꼴이 다르게 처리됩니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 글꼴 처리를 참조하십시오.

ForeColor

ForeColor

참고:

Visual Basic 2008에서는 색이 다르게 처리됩니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 색 동작을 참조하십시오.

Height

Height, Size

참고:

Visual Basic 2008에서는 좌표가 다르게 처리됩니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 좌표계를 참조하십시오.

HelpContextID

새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 도움말 지원을 참조하십시오.

HWnd

Handle

Index

새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 컨트롤 배열을 참조하십시오.

ItemData

새롭게 구현되었습니다. 자세한 내용은 ItemData 속성을 업그레이드할 수 없습니다.을 참조하십시오.

Left

Left

참고:

Visual Basic 2008에서는 좌표가 다르게 처리됩니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 좌표계를 참조하십시오.

List

Items

ListCount

Count

ListIndex

SelectedIndex

Locked

DropDownStyle = DropDownList

참고:

Visual Basic 6.0에서는 Locked 속성을 True로 설정하면 선택을 변경할 수 없습니다. Visual Basic 2008에서는 MouseDown 이벤트의 선택 내용을 취소하면 이와 같은 동작을 얻을 수 있습니다.

MouseIcon

새롭게 구현되었습니다. 자세한 내용은 사용자 지정 MousePointer를 설정할 수 없습니다.를 참조하십시오.

MousePointer

Cursor

상수 목록은 Visual Basic 6.0 사용자를 위한 MousePointer를 참조하십시오.

NewIndex

새롭게 구현되었습니다. 자세한 내용은 NewIndex 속성을 업그레이드할 수 없습니다.을 참조하십시오.

OLEDragMode

새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 끌어서 놓기를 참조하십시오.

OLEDropMode

새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 끌어서 놓기를 참조하십시오.

Parent

FindForm 메서드

RightToLeft

RightToLeft

SelLength

SelectionLength

SelStart

SelectionStart

SelText

SelectedText

Style

DropDownStyle

ToolTipText

ToolTip 구성 요소

자세한 내용은 Visual Basic 6.0 사용자를 위한 도구 설명 지원을 참조하십시오.

Top

Top

참고:

Visual Basic 2008에서는 좌표가 다르게 처리됩니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 좌표계를 참조하십시오.

TopIndex

새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 TopIndex 속성 및 Scroll 이벤트를 참조하십시오.

WhatsThisHelpID

새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 도움말 지원을 참조하십시오.

Width

Width, Size

참고:

Visual Basic 2008에서는 좌표가 다르게 처리됩니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 좌표계를 참조하십시오.

메서드

Visual Basic 6.0

동일한 기능의 Visual Basic 2008 요소

AddItem

Add

AddRange

Insert

Clear

Clear

Drag

새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 끌어서 놓기를 참조하십시오.

Move

SetBounds

참고:

Visual Basic 2008에서는 좌표가 다르게 처리됩니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 좌표계를 참조하십시오.

OLEDrag

Visual Basic 6.0 사용자를 위한 끌어서 놓기.

RemoveItem

Items.Remove

SetFocus

Focus

ShowWhatsThis

새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 도움말 지원을 참조하십시오.

ZOrder

BringToFrontSendToBack 함수

이벤트

Visual Basic 6.0

동일한 기능의 Visual Basic 2008 요소

Change

TextChanged

참고:

TextChanged 이벤트의 동작이 조금 다릅니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 ComboBox 컨트롤 변경 이벤트를 참조하십시오.

Click

SelectedIndexChanged

DblClick

새롭게 구현되었습니다. SelectedIndexChanged 또는 TextChanged 이벤트를 사용합니다.

DragDrop

DragOver

새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 끌어서 놓기를 참조하십시오.

GotFocus

Enter

LostFocus

Leave

OLECompleteDrag

OLEDragDrop

OLEDragOver

OLEGiveFeedback

OLESetData

OLEStartDrag

새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 끌어서 놓기를 참조하십시오.

Scroll

새롭게 구현되었습니다. 자세한 내용은 Visual Basic 6.0 사용자를 위한 TopIndex 속성 및 Scroll 이벤트를 참조하십시오.

Validate

Validating

업그레이드 참고 사항

Visual Basic 6.0 프로젝트를 Visual Basic 2008로 업그레이드하면 ComboBox 컨트롤의 Change 이벤트가 Visual Basic 2008ComboBox 컨트롤의 TextChanged 이벤트로 매핑됩니다. 그러나 TextChanged 이벤트의 동작은 Change 이벤트의 동작과 다릅니다. 따라서 이러한 차이로 인해 코드에서 예상치 못한 결과가 발생할 수 있습니다.

ItemData, Locked, NewIndex 또는 TopIndex 속성을 참조하는 코드나 Scroll 이벤트 프로시저의 코드는 업그레이드되지 않고 코드에 경고 주석이 추가됩니다. 응용 프로그램을 컴파일하려면 해당 코드를 제거하거나 수정해야 합니다.

참고 항목

개념

Visual Basic 6.0 사용자를 위한 색 동작

Visual Basic 6.0 사용자를 위한 Font 개체

Visual Basic 6.0 사용자를 위한 MousePointer

Visual Basic 6.0 사용자를 위한 도구 설명 지원

참조

ComboBox 컨트롤 개요(Windows Forms)