Control ListBox para usuarios de Visual Basic 6.0

Actualización: noviembre 2007

El control ListBox de Visual Basic 6.0 se reemplaza por el control ListBox o CheckedListBox en Visual Basic 2008. Los nombres de algunas propiedades, métodos, eventos y constantes son diferentes y, en algunos casos, existen diferencias de comportamiento.

Diferencias conceptuales

ListBox activado

En Visual Basic 6.0, la propiedad Style de un control ListBox determina si aparece una casilla junto a cada elemento de texto. Se pueden seleccionar varios elementos en ListBox aunque la propiedad MultiSelect esté establecida en False; para ello, debe activarse la casilla situada junto a estos elementos. No existe modo alguno de determinar mediante programación el estado de activación de un elemento; si necesita esta funcionalidad, deberá utilizar el control ListView.

En Visual Basic 2008, el nuevo control CheckedListBox muestra casillas al lado de cada elemento; ya no pueden mostrarse casillas en el control ListBox. El control CheckedListBox permite determinar mediante programación el estado de activación de cada elemento a través de una colección CheckedListBox.CheckedItemCollection.

Columns (Propiedad)

En Visual Basic 6.0, la propiedad Columns tomaba un entero que especificaba el número de columnas que se iban a mostrar.

En Visual Basic 2008, la propiedad MultiColumn toma un valor booleano y la propiedad ColumnWidth toma un entero que especifica el ancho en píxeles. Si el ancho del control ListBox cambia en tiempo de ejecución, es posible que tenga que establecer la propiedad ColumnWidth en cada columna.

ItemCheck (Evento)

En el control ListBox de Visual Basic 6,0, cuando se producía un evento ItemCheck, ya se había cambiado el estado de activación.

En el control CheckedListBox de Visual Basic 2008, cuando se provoca el evento ItemCheck, el estado de activación aún no ha cambiado. Puede obtener el valor pendiente del argumento ItemCheckEventArgs transferido al evento.

Cambios de código para el control ListBox

En los ejemplos siguientes se muestran las diferencias entre las técnicas de codificación de Visual Basic 6.0 y Visual Basic 2008.

El código se modifica para agregar y quitar elementos en un control ListBox

El código siguiente muestra cómo se agregan y quitan elementos de 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)

El código se modifica para obtener acceso a elementos específicos de un control ListBox

El código siguiente muestra cómo se devuelve el valor de un elemento de 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

El código se modifica para determinar los elementos activados en un control CheckedListBox

El código siguiente muestra cómo se determina el estado de activación de elementos en un control 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

Equivalencias de propiedades, métodos y eventos del control ListBox

En las siguientes tablas se muestran propiedades, métodos y eventos de Visual Basic 6.0, junto con sus equivalentes en Visual Basic 2008. No se enumeran aquellas propiedades, métodos y eventos que tienen el mismo nombre y el mismo comportamiento. Donde corresponde, las constantes aparecen con sangría debajo de la propiedad o método. Salvo que se indique lo contrario, todas las enumeraciones de Visual Basic 2008 se asignan al espacio de nombres System.Windows.Forms.

Esta tabla proporciona vínculos a temas en los que se explican las diferencias de comportamiento. Cuando no existe un equivalente directo en Visual Basic 2008, se proporcionan vínculos a temas en los que se incluyen alternativas.

Propiedades

Visual Basic 6.0

Equivalente en Visual Basic 2008

Appearance

Nueva implementación. Para obtener más información, vea Propiedades Appearance y BorderStyle para usuarios de Visual Basic 6.0.

BackColor

BackColor

Nota:

Los colores se administran de forma diferente en Visual Basic 2008. Para obtener más información, vea Comportamiento del color para los usuarios de Visual Basic 6.0.

Columns

MultiColumn y ColumnWidth

Container

Parent

DataChanged

DataField

DataFormat

DataMember

DataSource

Nueva implementación. Para obtener más información, vea Acceso a datos para usuarios de Visual Basic 6.0.

DragIcon

DragMode

Nueva implementación. Para obtener más información, vea Arrastrar y colocar para usuarios de Visual Basic 6.0.

FontFont

FontBold

FontItalic

FontName

FontSize

FontStrikethrough

FontUnderline

Font

Nota:

Las fuentes se administran de forma diferente en Visual Basic 2008. Para obtener más información, vea Objeto Font para usuarios de Visual Basic 6.0.

ForeColor

ForeColor

Nota:

Los colores se administran de forma diferente en Visual Basic 2008. Para obtener más información, vea Comportamiento del color para los usuarios de Visual Basic 6.0.

Height

Height, Size

Nota:

Las coordenadas se administran de forma diferente en Visual Basic 2008. Para obtener más información, vea Sistema de coordenadas para usuarios de Visual Basic 6.0.

HelpContextID

Nueva implementación. Para obtener más información, vea Compatibilidad con la Ayuda para usuarios de Visual Basic 6.0.

HWnd

Handle

Index

Nueva implementación. Para obtener más información, vea Matrices de controles para usuarios de Visual Basic 6.0.

IntegralHeight

IntegralHeight

ItemData

Nueva implementación. Para obtener más información, vea No se puede actualizar la propiedad ItemData.

Left

Left

Nota:

Las coordenadas se administran de forma diferente en Visual Basic 2008. Para obtener más información, vea Sistema de coordenadas para usuarios de Visual Basic 6.0.

List

Items

ListCount

Count (List.Count)

ListIndex

SelectedIndex

MouseIcon

Nueva implementación. Para obtener más información, vea No se puede personalizar la propiedad MousePointer.

MousePointer

Cursor

Para obtener una lista de constantes, vea MousePointer para usuarios de Visual Basic 6.0.

MultiSelect

SelectionMode

NewIndex

Nueva implementación. Para obtener más información, vea No se puede actualizar la propiedad NewIndex.

OLEDragMode

OLEDropMode

Nueva implementación. Para obtener más información, vea Arrastrar y colocar para usuarios de Visual Basic 6.0.

Parent

Método FindForm

SelCount

Count (SelectedItem.Count)

Selected

GetSelected, SetSelected (control ListBox)

GetItemChecked, SetItemChecked (control CheckedListBox)

Style

Nueva propiedad de implementación. 0 – Standard se asigna al control CheckedListBox; 1 – Checkbox se asigna al control CheckedListBox.

ToolTipText

Componente ToolTip

Para obtener más información, vea Compatibilidad de la información sobre herramientas para usuarios de Visual Basic 6.0.

Top

Top

Nota:

Las coordenadas se administran de forma diferente en Visual Basic 2008. Para obtener más información, vea Sistema de coordenadas para usuarios de Visual Basic 6.0.

WhatsThisHelpID

Nueva implementación. Para obtener más información, vea Compatibilidad con la Ayuda para usuarios de Visual Basic 6.0.

Width

Width, Size

Nota:

Las coordenadas se administran de forma diferente en Visual Basic 2008. Para obtener más información, vea Sistema de coordenadas para usuarios de Visual Basic 6.0.

Métodos

Nombre

Equivalente en Visual Basic 2008

AddItem

Add

AddRange

Insert

Clear

Clear

Drag

Nueva implementación. Para obtener más información, vea Arrastrar y colocar para usuarios de Visual Basic 6.0.

Move

SetBounds

Nota:

Las coordenadas se administran de forma diferente en Visual Basic 2008. Para obtener más información, vea Sistema de coordenadas para usuarios de Visual Basic 6.0.

OLEDrag

Nueva implementación. Para obtener más información, vea Arrastrar y colocar para usuarios de Visual Basic 6.0.

RemoveItem

Remove

SetFocus

Focus

ShowWhatsThis

Nueva implementación. Para obtener más información, vea Compatibilidad con la Ayuda para usuarios de Visual Basic 6.0.

ZOrder

Método BringToFront o SendToBack

Eventos

Visual Basic 6.0

Equivalente en Visual Basic 2008

DblClick

DoubleClick

DragDrop

DragOver

Nueva implementación. Para obtener más información, vea Arrastrar y colocar para usuarios de Visual Basic 6.0.

GotFocus

Enter

ItemCheck

ItemCheck (sólo CheckedListBox)

LostFocus

Leave

OLECompleteDrag

OLEDragDrop

OLEDragOver

OLEGiveFeedback

OLESetData

OLEStartDrag

Nueva implementación. Para obtener más información, vea Arrastrar y colocar para usuarios de Visual Basic 6.0.

Scroll

Nueva implementación. Para obtener más información, vea Propiedad TopIndex y evento Scroll para usuarios de Visual Basic 6.0.

Validate

Validating

Notas de actualización

Durante la actualización, si la propiedad Style de un control Listbox de Visual Basic 6.0 está establecida en 1 – Checkbox, se actualiza al control CheckedListBox; en caso contrario, se actualiza al control ListBox.

Vea también

Referencia

Información general sobre ListBox (Control, formularios Windows Forms)

Información general sobre ListBox (Control, formularios Windows Forms)

Información general sobre el control CheckedListBox (formularios Windows Forms)