Esta documentación está archivada y no tiene mantenimiento.

Control ComboBox para usuarios de Visual Basic 6.0

Visual Studio 2005

El control ComboBox de Visual Basic 6.0 se ha reemplazado por el control ComboBox de Windows Forms en Visual Basic 2005. 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 2005, el evento Change ya no existe; el evento TextChanged se desencadena cada vez que el texto se modifica 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 2005, 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 2005, 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 2005, 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 2005, la propiedad ComboBox ya no es compatible con 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.se utiliza junto con la propiedad TopIndex para llevar a cabo acciones cuando se desplaza por la lista. Visual Basic 2005 no admite el evento Scroll; sin embargo, en la mayoría de los casos, el evento SelectedIndexChanged constituye un sustituto válido.

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 que existen entre las técnicas de codificación de Visual Basic 6.0 y Visual Basic 2005.

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 2005
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 2005
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 2005
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 2005
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 enumeran propiedades, métodos y eventos de Visual Basic 6.0 con sus equivalentes en Visual Basic 2005. 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 2005 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 2005, se proporcionan vínculos a temas en los que se incluyen alternativas.

Propiedades

Visual Basic 6.0 Equivalente en Visual Basic 2005

Appearance

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

BackColor

BackColor

NoteNota

Los colores se controlan de forma diferente en Visual Basic 2005. 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

NoteNota

Las fuentes se controlan de forma diferente en Visual Basic 2005. Para obtener más información, vea Control de fuentes para usuarios de Visual Basic 6.0.

ForeColor

ForeColor

NoteNota

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

Height

Height, Size

NoteNota

Las coordenadas se controlan de forma diferente en Visual Basic 2005. 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

NoteNota

Las coordenadas se controlan de forma diferente en Visual Basic 2005. 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

NoteNota

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 2005, para duplicar este comportamiento, puede cancelar 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

NoteNota

Las coordenadas se controlan de forma diferente en Visual Basic 2005. 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

NoteNota

Las coordenadas se controlan de forma diferente en Visual Basic 2005. 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 2005

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

NoteNota

Las coordenadas se controlan de forma diferente en Visual Basic 2005. 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 2005

Change

TextChanged

NoteNota

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 2005, el evento Change del control ComboBox se asigna al evento TextChanged del control ComboBox de Visual Basic 2005. 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

Mostrar: