Este componente presenta una lista de
elementos seleccionables.
Al hacer click en uno de los elementos
su índice es almacenado en la
propiedad .Index.
La propiedad .Current nos ofrece la
posibilidad de conocer del
elemento actual seleccionado,su texto o
si ha sido seleccionado un
elemento en concreto.
Lista.Current.Text
Lista.Current.Selected
Listbox es igual que un array de
elementos.
Posee propiedades para conocer cuantos
elementos tiene la lista, como la
propiedad .Count.
No debemos olvidar nunca que siempre el
primer elemento en un array es 0.
Así que la propiedad .Count puede
decirnos que tenemos un elemento, pero
su propiedad .Index al seleccionar este
elemento es 0.
Al igual que teníamos un array:
aAmigos[1]
Con la propiedad Lista.List[1] hacemos
la misma función con
nuestro componente ListBox.
Cuando no hemos seleccionado ningún
elemento de la lista la propiedad
Index es -1
Tenemos métodos para ordenar nuestra
Lista y de hacer búsquedas en ella.
Usamos siempre el método .Add para
añadir elementos a nuestra lista.
Aquí tenéis un ejemplo para ver el funcionamiento básico
de este componente.
He utilizado el recurso que nos ofrece
el componente de alineación Vbox, para
que tanto la caja de texto y los
botones queden alineados.
El código es simple. ;-)
----código---
' Gambas class file
Public Sub _new()
End
Public Sub Form_Open()
Me.Title = "Ejemplo con ListBox"
Me.Center()
End
Public Sub btnInsertar_Click()
If txtEntrada.Text = ""
Then 'Si no escribimos nada nos lo dice
Message.Info("Debes escribir
algo")
Else
lstLista.Add(txtEntrada.text)
'Añadimos el contenido de la caja de texto a la
lista
lblSalida.Text = (txtEntrada.Text &
" fue añadido a la lista")
txtEntrada.text = ""
Endif
txtEntrada.SetFocus
End
Public Sub btnLimpiarLista_Click()
lstLista.Clear
lblSalida.Text = "La lista fue
borrada"
End
Public Sub btnEliminar_Click()
If lstLista.Index >= 0 Then
'Si se ha seleccionado algún elemento.
lblSalida.Text =
lstLista.Current.Text & " fue eliminado"
lstLista.Remove(lstLista.Index)
Else
If lstLista.Index = -1 Then
Message.Warning("Debe
seleccionar algún elemento de la lista")
Endif
Endif
End
Public Sub lstLista_Select()
If lstLista.Index <> -1 Then
'Si se ha seleccionado algún elemento.Otra manera de
hacerlo.
lblSalida.Text =
Trim(lstLista.Current.Text) & " fue seleccionado"
Endif
End
Public Sub btnSalir_Click()
Me.Close
End
Public Sub btnInsertar_Enter()
btnInsertar.Font.bold = True
'Cuando el cursor este dentro del botón cambia el estilo de su
fuente a negrita
End
Public Sub btnInsertar_Leave()
btnInsertar.Font.Bold = False
'Cuando el cursor este fuera del botón cambia el estilo de su fuente
a normal
End
---código---
Si os fijáis en los botones debajo de
algunas letras existe un guión bajo. Este guión permite el uso de un acceso rápido al botón
en cuestión.
Usamos la combinación de las teclas
Alt + la letra para hacer lo
mismo que si hiciéramos click con el ratón en el botón.
mismo que si hiciéramos click con el ratón en el botón.
¿ Cómo podemos hacer esto con
nuestros botones de comando ?.
Vamos a la propiedad texto del botón
y cerca de la letra que queremos
usar, añadirnos el carácter “&”,
que conocemos como Ampersand.
No debemos repetir los mismos
caracteres para usar los botones desde teclado
por que puede que el programa no
responda como quisiéramos.
Aquí tenéis el ejemplo con su código.
Ejemplo de Listbox
Podéis encontrar mas información en:
En GambasDoc
Aquí tenéis el ejemplo con su código.
Ejemplo de Listbox
Podéis encontrar mas información en:
En GambasDoc
El Link del código esta muerto, muchas gracias por tu aporte, si puedes reparar el link seria genial! saludos
ResponderEliminarHola afro. Efectivamente, la gran mayoría de los enlaces pertenecen a Freedrive, que parece estar caído o difunto. He cambiado el enlace para que puedas bajarlo. Para cualquier problema como este comentar.
ResponderEliminarSaludos!.
y si quiero seleccionar varias pobciones y que me lo agrege en la lista por ejemplo tengo varios nombre alberto pedro juan si quiero q los meta a todos de una como se haria eso?
ResponderEliminarHola Alfredo. Tal como está el código no te valdría para lo que tu quieres.
ResponderEliminarEl método "Add" del componente Listbox solo te vale para añadir un elemento a la vez. Parece que preguntas dos cosas distintas.
- Selección múltiple.
- Añadir más de un elemento.
Para poder añadir más de un elemento. Necesitas conocer
el comando "split" que te convertirá una cadena de texto a
un array usando un separador (una letra, un simbolo, el carácter espacio ). Luego mediante un bucle,
trabajando con ese array, irías añadiendo a la lista cada uno de esos elementos con el método "Add" del componente Listbox.
La selección múltiple es una propiedad del Listbox que tienes que activar.
Imagina una cadena así "Alberto Pedro Juan" por defecto
el espacio es el separador. Intenta primero usar la orden split con esa cadena y convertir esa cadena a tres elementos de un array de cadena. Con una sola instrucción
puedes hacerlo, prueba. ;-)
Saludos!