Поделиться через


Элемент управления ListBox для пользователей Visual Basic 6.0

Обновлен: Ноябрь 2007

Элемент управления ListBox в Visual Basic 6.0 заменяется в Visual Basic 2008 либо элементом управления ListBox, либо элементом управления CheckedListBox. Имена некоторых свойств, методов, событий и констант различаются, а в некоторых случаях имеется различие в их поведении.

Концептуальные различия

Список флажков

В Visual Basic 6.0 свойство Style элемента управления ListBox определяет отображение флажка рядом с каждым текстовым элементом. Если свойство MultiSelect имеет значение False, можно выбрать несколько элементов в списке ListBox, установив рядом с ними флажки. При этом не существует программного способа определения того, установлен ли флажок для данного элемента. Если требуется такая возможность, следует вместо этого использовать элемент управления ListView.

В Visual Basic 2008 новый элемент управления CheckedListBox служит для отображения флажков рядом с каждым элементом; отображение флажков в элементе управления ListBox теперь невозможно. Элемент управления CheckedListBox позволяет программно определять состояние установки флажка для каждого элемента коллекции CheckedListBox.CheckedItemCollection.

Свойство Columns

В Visual Basic 6.0 свойство Columns принимало целочисленное значение, определяющее число отображаемых столбцов.

В Visual Basic 2008 свойство MultiColumn принимает логическое значение, а свойство ColumnWidth — целочисленное значение, определяющее ширину в точках. Если ширина элемента управления ListBox изменяется во время выполнения, возможно, понадобится устанавливать свойство ColumnWidth для каждого столбца.

Событие ItemCheck

В элементе управления ListBox Visual Basic 6.0 состояние флажка изменялось до возникновения события ItemCheck.

В элементе управления Visual Basic 2008 CheckedListBox состояние флажка не изменяется до возникновения события 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

2yc9d57t.alert_note(ru-ru,VS.90).gifПримечание.
Обработка цветов в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Действие цветов (для пользователей Visual Basic 6.0).

Columns

MultiColumn и ColumnWidth

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

2yc9d57t.alert_note(ru-ru,VS.90).gifПримечание.
Обработка шрифтов в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Объект Font (для пользователей Visual Basic 6.0).

ForeColor

ForeColor

2yc9d57t.alert_note(ru-ru,VS.90).gifПримечание.
Обработка цветов в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Действие цветов (для пользователей Visual Basic 6.0).

Height

Height, Size

2yc9d57t.alert_note(ru-ru,VS.90).gifПримечание.
Обработка координат в 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

2yc9d57t.alert_note(ru-ru,VS.90).gifПримечание.
Обработка координат в 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

GetSelected, SetSelected (элемент управления ListBox)

GetItemChecked, SetItemChecked (элемент управления CheckedListBox)

Style

Новое свойство реализации. 0 — Standard соответствует элементу управления CheckedListBox; 1 — Checkbox соответствует элементу управления CheckedListBox.

ToolTipText

Компонент ToolTip

Дополнительные сведения см. в разделе Поддержка подсказок (для пользователей Visual Basic 6.0).

Top

Top

2yc9d57t.alert_note(ru-ru,VS.90).gifПримечание.
Обработка координат в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).

WhatsThisHelpID

Новая реализация. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0).

Width

Width, Size

2yc9d57t.alert_note(ru-ru,VS.90).gifПримечание.
Обработка координат в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).

Методы

Имя

Эквивалент Visual Basic 2008

AddItem

Add

AddRange

Insert

Clear

Clear

Drag

Новая реализация. Дополнительные сведения см. в разделе Действие перетаскивания для пользователей Visual Basic 6.0.

Move

SetBounds

2yc9d57t.alert_note(ru-ru,VS.90).gifПримечание.
Обработка координат в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).

OLEDrag

Новая реализация. Дополнительные сведения см. в разделе Действие перетаскивания для пользователей Visual Basic 6.0.

RemoveItem

Remove

SetFocus

Focus

ShowWhatsThis

Новая реализация. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0).

ZOrder

Метод BringToFront или SendToBack

События

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

Замечания по обновлению

В процессе обновления, если свойство Style элемента управления Listbox в Visual Basic 6.0 установлено равным 1 — Checkbox, он обновляется до элемента управления CheckedListBox, в противном случае — до элемента управления ListBox.

См. также

Ссылки

Общие сведения об элементе управления ListBox (Windows Forms)

Общие сведения об элементе управления ListBox (Windows Forms)

Общие сведения об элементе управления CheckedListBox (Windows Forms)