Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: k_arlytos en Diciembre 06, 2012, 06:34:31 pm
-
Buenas tengo un problema
tengo un control de tipo ComboBox
tiene como propiedad Style = 2 - Dropdown List
carago el combobox con 4 datos
Combo1.AddItem ("Hola")
Combo1.AddItem ("Mundo")
Combo1.AddItem ("Carlos")
Combo1.AddItem ("Lizano")
lo que quiero hacer es al dar click en un boton que me muestre en el combo un dato
POR EJEMPLO SI YO LE DOY ESTO
en el evento click del boton
Combo1.Text="Lizano"
EL EL COMBO QUE MUESTRE
Lizano
Si PONGO Combo1.Text="Hola"
EL EL COMBO QUE MUESTRE
Hola
me me tira un error de que la propiedad de text es de solo Lectura
existe alguna forma de hacer es?
-
Si no queres o poder cambiar la propiedad Style tenes que hacerlo mediante la propiedad ITEMDATA
eJEMPLO AL CARGAR
With Combo1
.AddItem "HOLA"
.ItemData(.NewIndex) = 0
.AddItem "MARIO"
.ItemData(.NewIndex) = 1
End With
PARA SELECCIONAR Y QUE TE SELECCIONE 'MARIO'
Combo1.ListIndex = Combo1.ItemData(1)
-
No puedes "escribir" el combobox de esa forma cuando no es editable (dropdown list es solo para seleccionar)
Tienes que encontrar el nº de item para mostrar.... o -1 para mostrar en blanco..
Lo puedes hacer con un bucle simple o con api:
http://www.recursosvisualbasic.com.ar/htm/listado-api/api-13.htm
-
esa api era la que estaba buscando, pero en tiempo de ejecucion cuando estas enfocado en el combo y escribes algo automáticamente aparece el mas parecido de la lista
-
Dim num As Integer
Private Sub Command1_Click()
num = 0
For i = 0 To Combo1.ListCount - 1
Combo1.ListIndex = Val(i)
If Trim(Text1.Text) = Trim(Combo1.Text) Then
num = i
End If
Next i
Combo1.ListIndex = Val(num)
End Sub