Элемент управления 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 |
![]()
Обработка цветов в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Действие цветов (для пользователей Visual Basic 6.0).
|
Columns |
|
Container |
|
DataChanged DataField DataFormat DataMember DataSource |
Новая реализация. Дополнительные сведения см. в разделе Доступ к данным для пользователей Visual Basic 6.0. |
DragIcon DragMode |
Новая реализация. Дополнительные сведения см. в разделе Действие перетаскивания для пользователей Visual Basic 6.0. |
FontFont FontBold FontItalic FontName FontSize FontStrikethrough FontUnderline |
![]()
Обработка шрифтов в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Объект Font (для пользователей Visual Basic 6.0).
|
ForeColor |
![]()
Обработка цветов в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Действие цветов (для пользователей Visual Basic 6.0).
|
Height |
![]()
Обработка координат в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).
|
HelpContextID |
Новая реализация. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0). |
HWnd |
|
Index |
Новая реализация. Дополнительные сведения см. в разделе Массивы элементов управления для пользователей Visual Basic 6.0. |
IntegralHeight |
|
ItemData |
Новая реализация. Дополнительные сведения см. в разделе Возможность обновления свойства ItemData отсутствует. |
Left |
![]()
Обработка координат в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).
|
List |
|
ListCount |
Count (List.Count) |
ListIndex |
|
MouseIcon |
Новая реализация. Дополнительные сведения см. в разделе Невозможно задать настраиваемый указатель мыши MousePointer. |
MousePointer |
Список констант см. в разделе Свойство MousePointer (для пользователей Visual Basic 6.0). |
MultiSelect |
|
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 |
![]()
Обработка координат в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).
|
WhatsThisHelpID |
Новая реализация. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0). |
Width |
![]()
Обработка координат в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).
|
Методы
Имя |
Эквивалент Visual Basic 2008 |
---|---|
AddItem |
|
Clear |
|
Drag |
Новая реализация. Дополнительные сведения см. в разделе Действие перетаскивания для пользователей Visual Basic 6.0. |
Move |
![]()
Обработка координат в Visual Basic 2008 выполняется иначе. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).
|
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 |
Новая реализация. Дополнительные сведения см. в разделе Свойство TopIndex и событие Scroll для пользователей Visual Basic 6.0. |
Validate |
Замечания по обновлению
В процессе обновления, если свойство Style элемента управления Listbox в Visual Basic 6.0 установлено равным 1 — Checkbox, он обновляется до элемента управления CheckedListBox, в противном случае — до элемента управления ListBox.
См. также
Ссылки
Общие сведения об элементе управления ListBox (Windows Forms)
Общие сведения об элементе управления ListBox (Windows Forms)
Общие сведения об элементе управления CheckedListBox (Windows Forms)