ListBox 控件(针对 Visual Basic 6.0 用户)

更新: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 集合以编程方式确定每一项的选中状态。

列属性

在 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

新的实现。有关更多信息,请参见 Appearance 和 BorderStyle 属性(针对 Visual Basic 6.0 用户)

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 中以不同方式处理。有关更多信息,请参见 Font 对象(针对 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

有关常数的列表,请参见 MousePointer(针对 Visual Basic 6.0 用户)

MultiSelect

SelectionMode

NewIndex

新的实现。有关更多信息,请参见 无法升级 NewIndex 属性

OLEDragMode

OLEDropMode

新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)

Parent

FindForm 方法

SelCount

Count (SelectedItem.Count)

Selected

GetSelectedSetSelected(ListBox 控件)

GetItemCheckedSetItemChecked(CheckedListBox 控件)

Style

新的实现属性。“0 – Standard”映射到 CheckedListBox 控件,“1 – Checkbox”映射到 CheckedListBox 控件。

ToolTipText

ToolTip 组件

有关更多信息,请参见工具提示支持(针对 Visual Basic 6.0 用户)

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

新的实现。有关更多信息,请参见 TopIndex 属性和 Scroll 事件(针对 Visual Basic 6.0 用户)

Validate

Validating

升级说明

在升级期间,如果 Visual Basic 6.0 Listbox 的 Style 属性设置为“1 – Checkbox”,则该控件升级为 CheckedListBox 控件;否则,该控件升级为 ListBox 控件。

请参见

参考

ListBox 控件概述(Windows 窗体)

ListBox 控件概述(Windows 窗体)

CheckedListBox 控件概述(Windows 窗体)