Visual Basic 6.0 使用者可用的 ListBox 控制項
更新:2007 年 11 月
Visual Basic 6.0 的 ListBox 控制項在 Visual Basic 2008 中已經由 ListBox 控制項或 CheckedListBox 控制項取代。有些屬性 (Property)、方法、事件及常數的名稱會改變,而且在某些情況下,行為方面也會有差異。
概念上的差異
已核取 ListBox
在 Visual Basic 6.0 中,ListBox 控制項的 Style 屬性會判斷核取方塊是否顯示在每個文字項目的旁邊。透過選取項目旁的核取方塊,可以在 ListBox 中選取多重項目,即使 MultiSelect 屬性設為 False 也一樣。無法以程式設計方式判斷項目的核取狀態。如果需要這個功能,還需要改為使用 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 使用者可用的 ToolTip 支援。 |
||
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 控制項。