Control ComboBox para usuarios de Visual Basic 6.0

Actualización: noviembre 2007

El control ComboBox de Visual Basic 6.0 se ha reemplazado por el control ComboBox de formularios Windows Forms 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

Change (Evento)

En Visual Basic 6.0, el evento Change del control ComboBox se desencadena cuando se modifica el texto del control. El evento Change no se desencadena cuando se selecciona un elemento en la sección de la lista del control. Si se modifica el texto de un elemento de la lista mediante programación, no se desencadena el evento Change.

En Visual Basic 2008 ya no existe el evento Change; el evento TextChanged se provoca cada vez que el texto cambia por alguna razón, por ejemplo:

  • Cuando se modifica la sección de entrada de texto

  • Cuando se selecciona un elemento de la lista

  • Cuando se modifica un elemento de la lista mediante programación

  • Cuando se llama al método AddItem

ItemData (Propiedad)

En Visual Basic 6.0 la propiedad ItemData de un control ComboBox se puede establecer en tiempo de diseño en la ventana Propiedades para asociar un valor Integer con un elemento ComboBox.

En Visual Basic 2008, la propiedad ItemData ya no existe. La biblioteca Microsoft.VisualBasic.Compatibility contiene una función SetItemData que se puede utilizar para asociar un valor Integer con un elemento; la función GetItemData se puede utilizar para recuperar el elemento.

Locked (Propiedad)

En Visual Basic 6.0, la propiedad Locked de un control ComboBox determina si se puede editar la sección del cuadro de texto del control.

En Visual Basic 2008, la propiedad Locked impide que un control se mueva en tiempo de diseño. No existe un equivalente directo para la propiedad Locked de Visual Basic 6.0; sin embargo, puede conseguir el mismo efecto si establece la propiedad DropDownStyle del control ComboBox en DropDownList.

Nota   En Visual Basic 6.0, si se establece la propiedad Locked en True, también se impedirá que se modifique la selección. Para duplicar este comportamiento, puede cancelar la selección en el evento MouseDown.

NewIndex (Propiedad)

En Visual Basic 6.0, la propiedad NewIndex se usaba para recuperar el índice del último elemento agregado a un control ComboBox.

En Visual Basic 2008, la propiedad NewIndex ya no existe. Puede utilizar el valor devuelto desde el método Item.Add para recuperar el índice de un elemento cuando éste se agrega.

TopIndex (Propiedad)

En Visual Basic 6.0, la propiedad TopIndex se utilizaba para devolver o establecer un valor que especificara el elemento del control ComboBox o ListBox que debía mostrarse en la posición superior. Esta propiedad solía utilizarse para desplazarse por la lista sin seleccionar ningún elemento.

En Visual Basic 2008, el control ComboBox ya no admite la propiedad TopIndex. En la mayoría de los casos esto no debería representar un problema, porque al definir la propiedad TopIndex, no se producirá ningún efecto visible a menos que se hubiera establecido la propiedad Style en 1 - SimpleCombo. En este caso, puede emular su comportamiento utilizando un control ListBox y un control TextBox; el control ListBox continúa admitiendo la propiedad TopIndex.

Scroll (Evento)

El evento Scroll de Visual Basic 6.0 se utiliza junto con la propiedad TopIndex para realizar acciones al desplazarse por la lista. Visual Basic 2008 no admite el evento Scroll; sin embargo, en la mayoría de los casos, el evento SelectedIndexChanged es un reemplazo adecuado.

Otras diferencias

Existen numerosas diferencias conceptuales que se aplican a todos los controles, como diferencias en los enlaces de datos, control de fuentes, operaciones de arrastrar y colocar, compatibilidad con Ayuda, y otras. Para obtener más información, vea Conceptos de formularios Windows Forms para usuarios de Visual Basic 6.0.

Cambios de código para el control ComboBox

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 hacer que un control ComboBox sea de sólo lectura

El código siguiente muestra cómo impedir que un usuario agregue nuevos elementos a un control ComboBox.

' Visual Basic 6.0
Combo1.Locked = True
' Visual Basic
ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList

El código se modifica para seleccionar el último elemento agregado en un control ComboBox

El código siguiente muestra cómo se establece la selección en un elemento que se ha agregado mediante programación a un control ComboBox.

' Visual Basic 6.0
Combo1.AddItem "This is a new item"
Combo1.ListIndex = Combo1.NewIndex
' Visual Basic
Dim i As Integer
i = ComboBox1.Items.Add("This is a new item")
ComboBox1.SelectedIndex = i

El código de Private Sub se modifica para asociar datos de elementos

El código siguiente muestra cómo se asocia un número de empleado a cada empleado mostrado en un control ComboBox y cómo se recupera después ese número en tiempo de ejecución.

' Visual Basic 6.0
Private Sub Form_Load
    Combo1.AddItem "Nancy Davolio"
    Combo1.ItemData(Combo1.NewIndex) = 12345
    Combo1.AddItem "Judy Phelps"
    Combo1.ItemData(Combo1.NewIndex) = 67890
End Sub
Private Sub Combo1_Click()
    Label1.Caption = "Empoyee #" & _
    CStr(Combo1.ItemData(Combo1.ListIndex))
End Sub
' Visual Basic
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load

   ComboBox1.Items.Add("Nancy Davolio")
   Microsoft.VisualBasic.Compatibility.VB6. _
      SetItemData(ComboBox1, ComboBox1.Items.Count() - 1, 12345)

   ComboBox1.Items.Add("Judy Phelps")
   Microsoft.VisualBasic.Compatibility.VB6. _
      SetItemData(ComboBox1, ComboBox1.Items.Count() - 1, 67890)
End Sub
' Visual Basic
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

   Label1.Text = "Employee #" & CStr( _
   Microsoft.VisualBasic.Compatibility.VB6. _
      GetItemData(ComboBox1, ComboBox1.SelectedIndex))
End Sub

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

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.

Container

Parent

DataChanged

DataField

DataFormat

DataMember

DataSource

Nueva implementación. Para obtener más información, vea Control de 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.

Font

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 Control de fuentes 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.

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

ListIndex

SelectedIndex

Locked

DropDownStyle = DropDownList

Nota:
En Visual Basic 6.0, si se establece la propiedad Locked en True, también se impedirá que se modifique la selección. En Visual Basic 2008, puede duplicar este comportamiento cancelando la selección en el evento MouseDown.

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.

NewIndex

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

OLEDragMode

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

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

RightToLeft

RightToLeft

SelLength

SelectionLength

SelStart

SelectionStart

SelText

SelectedText

Style

DropDownStyle

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.

TopIndex

Nueva implementación. Para obtener más información, vea Propiedad TopIndex y evento Scroll 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

Visual Basic 6.0

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

Arrastrar y colocar para usuarios de Visual Basic 6.0.

RemoveItem

Items.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

BringToFront Funciones SendToBack

Eventos

Visual Basic 6.0

Equivalente en Visual Basic 2008

Change

TextChanged

Nota:
El comportamiento del evento TextChanged es ligeramente diferente. Para obtener más información, vea Evento de cambio de control ComboBox para usuarios de Visual Basic 6.0.

Click

SelectedIndexChanged

DblClick

Nueva implementación. Utilice los eventos SelectedIndexChanged o TextChanged.

DragDrop

DragOver

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

GotFocus

Enter

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

Cuando un proyecto de Visual Basic 6.0 se actualiza a Visual Basic 2008, el evento Change del control ComboBox se asigna al evento TextChanged del control ComboBox de Visual Basic 2008. El comportamiento del evento TextChanged difiere del comportamiento del evento Change; esta diferencia puede provocar resultados inesperados en el código.

No se actualizará ningún código que haga referencia a las propiedades ItemData, Locked, NewIndex o TopIndex ni ningún código del procedimiento de eventos Scroll; se agregarán comentarios de advertencia al código y este código deberá eliminarse o modificarse entes de compilar la aplicación.

Vea también

Conceptos

Comportamiento del color para los usuarios de Visual Basic 6.0

Objeto Font para usuarios de Visual Basic 6.0

MousePointer para usuarios de Visual Basic 6.0

Compatibilidad de la información sobre herramientas para usuarios de Visual Basic 6.0

Referencia

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