Propiedad ListIndex de un ComboBox
Necesito evaluar la propiedad ListIndex de un ComboBox, pero hasta que no pico sobre él y lo modifico, al evaluarla me da -1 en lugar del valor activo que tengo.
¿Puedo evaluarla sin necesidad de modificarlo?
¿Puedo evaluarla sin necesidad de modificarlo?
La propiedad ListIndex almacena el Ãndice del elemento seleccionado de un ComboBox, si el valor es -1 es que no se ha seleccionado nada, otra cosa es que tú le hayas dado valor a la propiedad text, pero no se ha seleccionado. Lo que si puedes hacer es asignarle tú un valor en código.
Si le asignas un valor en código estás seleccionando tú un elemento del combo. Pro ejemplo si quieres seleccionar por defecto el primer elemento del combo serÃa:
ComboBox1.ListIndex=0
Los valores que la puedes asignar deben estar entre 0 y nº de elemento menos 1 y edmás el -1, que eleiminarÃa la selección del combo. Al asinar valor al ListIndex se modifica la propiedad text del combo y se ejecuta el evento click del mismo, todo ello de forma automática.
ComboBox1.ListIndex=0
Los valores que la puedes asignar deben estar entre 0 y nº de elemento menos 1 y edmás el -1, que eleiminarÃa la selección del combo. Al asinar valor al ListIndex se modifica la propiedad text del combo y se ejecuta el evento click del mismo, todo ello de forma automática.
Gracias pero creo que no me sirve. Yo lo que necesito es saber, cuando cargo el formulario, el indice del elemento que se hay en el combo, el indice al que corresponde el texto que yo veo.
De todas formas muchas gracias por tu interés.
De todas formas muchas gracias por tu interés.
Para eso sólo tienes que establecer la propiedad Style del combo a DropDown, es decir a valor 2, de esta forma al modificarse el valor de la propiedad text, se establece el listindex al valor correpondiente.
Private Sub Command1_Click()
MsgBox Me.Combo1.ListIndex
Me.Combo1.Text = "yo"
MsgBox Me.Combo1.ListIndex
End Sub
Private Sub Form_Load()
With Me.Combo1
.AddItem "El"
.AddItem "tu"
.AddItem "yo"
.AddItem "nosotros"
.ListIndex = -1
End With
End Sub
Cuando haces click en el botón primero mostrarÃa -1, y luego, después de modificar mostrarÃa 2, que es Ãndice de la cadena de texto correspondiente.
Espero que te sirva
Private Sub Command1_Click()
MsgBox Me.Combo1.ListIndex
Me.Combo1.Text = "yo"
MsgBox Me.Combo1.ListIndex
End Sub
Private Sub Form_Load()
With Me.Combo1
.AddItem "El"
.AddItem "tu"
.AddItem "yo"
.AddItem "nosotros"
.ListIndex = -1
End With
End Sub
Cuando haces click en el botón primero mostrarÃa -1, y luego, después de modificar mostrarÃa 2, que es Ãndice de la cadena de texto correspondiente.
Espero que te sirva
