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 |
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 |
|
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 |
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 |
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 |
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 |
|
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 |
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 |
|
ListCount |
|
ListIndex |
|
Locked |
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 |
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 |
|
SelLength |
|
SelStart |
|
SelText |
|
Style |
|
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 |
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 |
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 |
|
Clear |
|
Drag |
Nueva implementación. Para obtener más información, vea Arrastrar y colocar para usuarios de Visual Basic 6.0. |
Move |
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 |
|
RemoveItem |
Items.Remove |
SetFocus |
|
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 |
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 |
|
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 |
|
LostFocus |
|
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 |
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)