共用方式為


Visual Basic 6.0 使用者可用的 ComboBox 控制項

更新:2007 年 11 月

Visual Basic 6.0 的 ComboBox 控制項在 Visual Basic 2008 中會以 Windows Form ComboBox 控制項取代。有些屬性 (Property)、方法、事件及常數的名稱會改變,而且在某些情況下,行為方面也會有差異。

概念上的差異

Change 事件

在 Visual Basic 6.0 中,修改控制項的文字時,會引發 ComboBox 控制項的 Change 事件。從控制項的清單部分選取項目時,不會引發 Change 事件。以程式設計方式變更清單中某項目的文字,並不會引發 Change 事件。

在 Visual Basic 2008 中,Change 事件已不存在。每次由於諸如下列原因變更文字時,都會引發 TextChanged 事件:

  • 修改文字輸入部分時

  • 從清單選取項目時

  • 以程式設計方式修改清單項目時

  • 呼叫 AddItem 方法時

ItemData 屬性

在 Visual Basic 6.0 中,您可以在設計階段使用 [屬性] 視窗設定 ComboBox 控制項的 ItemData 屬性,使 Integer 與 ComboBox 項目產生關聯。

在 Visual Basic 2008 中,ItemData 屬性已不存在。Microsoft.VisualBasic.Compatibility 程式庫包含 SetItemData 函式,可用來使 Integer 與項目產生關聯,而 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 - SimpleCombo],否則設定 TopIndex 屬性並無明顯的影響。在這種情況下,您可使用 ListBox 控制項和 TextBox 控制項來模擬此行為,ListBox 控制項仍支援 TopIndex 屬性。

Scroll 事件

Visual Basic 6.0 中的 Scroll 事件可用於結合 TopIndex 屬性,以在捲動清單時執行動作。Visual Basic 2008 不支援 Scroll 事件,但是在大多數情況下,SelectedIndexChanged 事件是適合的取代事件。

其他差異

此外,還有許多概念不同處,適用於所有控制項,包括資料繫結 (Data Binding)、字型處理、拖放作業、說明支援等方面的差別。如需詳細資訊,請參閱 Visual Basic 6.0 使用者的 Windows Form 概念

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 列舉型別 (Enumeration) 都會對應到 System.Windows.Forms 命名空間 (Namespace)。

此表提供說明行為差異的主題連結。若 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 使用者可用的 ToolTip 支援

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 控制項 Change 事件

Click

SelectedIndexChanged

DblClick

新實作。請使用 SelectedIndexChangedTextChanged 事件。

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 2008 之 ComboBox 控制項的 TextChanged 事件。TextChanged 事件的行為與 Change 事件的行為有所差異;這樣的差異性可能造成程式碼中非預期的結果。

不會升級參考 ItemData、Locked、NewIndex 或 TopIndex 屬性的程式碼或 Scroll 事件程序中的程式碼。警告註解已加入程式碼,必須在編譯應用程式之前移除或修改程式碼。

請參閱

概念

Visual Basic 6.0 使用者可用的色彩行為

Visual Basic 6.0 使用者可用的字型物件

Visual Basic 6.0 使用者可用的 MousePointer

Visual Basic 6.0 使用者可用的 ToolTip 支援

參考

ComboBox 控制項概觀 (Windows Form)