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

BackColor

注意事項:

在 Visual Basic 2008 中會以不同方式處理色彩。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的色彩行為

Columns

MultiColumnColumnWidth

Container

Parent

DataChanged

DataField

DataFormat

DataMember

DataSource

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的資料存取

DragIcon

DragMode

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作

FontFont

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 使用者可用的控制項陣列

IntegralHeight

IntegralHeight

ItemData

新實作。如需詳細資訊,請參閱 ItemData 屬性無法升級

Left

Left

注意事項:

在 Visual Basic 2008 中會以不同方式處理座標。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的座標系統

List

Items

ListCount

Count (List.Count)

ListIndex

SelectedIndex

MouseIcon

新實作。如需詳細資訊,請參閱無法設定自訂 MousePointer

MousePointer

Cursor

如需常數的清單,請參閱 Visual Basic 6.0 使用者可用的 MousePointer

MultiSelect

SelectionMode

NewIndex

新實作。如需詳細資訊,請參閱 NewIndex 屬性無法升級

OLEDragMode

OLEDropMode

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作

Parent

FindForm 方法

SelCount

Count (SelectedItem.Count)

Selected

GetSelectedSetSelected (ListBox 控制項)

GetItemCheckedSetItemChecked (CheckedListBox 控制項)

Style

新實作屬性。[0 – 標準] 對應至 CheckedListBox 控制項,[1 – 核取方塊] 對應至 CheckedListBox 控制項。

ToolTipText

ToolTip 元件

如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 ToolTip 支援

Top

Top

注意事項:

在 Visual Basic 2008 中會以不同方式處理座標。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的座標系統

WhatsThisHelpID

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援

Width

Width, Size

注意事項:

在 Visual Basic 2008 中會以不同方式處理座標。如需詳細資訊,請參閱 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

Remove

SetFocus

Focus

ShowWhatsThis

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援

ZOrder

BringToFrontSendToBack 方法

事件

Visual Basic 6.0

Visual Basic 2008 對等用法

DblClick

DoubleClick

DragDrop

DragOver

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作

GotFocus

Enter

ItemCheck

ItemCheck (僅限 CheckedListBox)

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 Listbox 的 Style 屬性設定為 [1 – 核取方塊],則會升級至 CheckedListBox 控制項,否則會升級至 ListBox 控制項。

請參閱

參考

ListBox 控制項概觀 (Windows Form)

ListBox 控制項概觀 (Windows Form)

CheckedListBox 控制項概觀 (Windows Form)