Вы находитесь на странице: 1из 8

CONTROL LISTBOX

El control ListBox permite aadir elementos en forma de lista y tambin poder


seleccionar elementos de la misma para trabajar los datos.
Este control permite seleccionar un elemento solo o varios de ellos, utilizando la
propiedad Multiselect. La imagen de la izquierda muestra un ListBox en el que se
selecciona un solo elemento y a la derecha se seleccionan varios:

Para agregar elementos a un control ListBox en tiempo de diseo, se debe seleccionar
el control Listbox, y desde la ventana de propiedades ubicarnos en la que se
llama List. Al desplegarla podemos agregar y remover elementos.
Para esto se debe ingresar uno, luego mantener la tecla Ctrl presionada y presionar
Enter, y agregar el siguiente y asi con los dems.
Para agregarlos en tiempo de ejecucin, es decir mediante cdigo, se utiliza un mtodo
llamado AddItem.
Por ejemplo si quisiramos agregar un elemento a un control llamado List1 en el
evento Click de un botn, debemos escribir el nombre del ListBox y presionar el ".".
Visual Basic desplegar la lista de propiedades y mtodos del control List, en ella
buscamos el mtodo AddItem, como muestra la imagen:




EL MTODO ADDITEM TIENE 2 PARMETROS.
AddItem "Elemento que vamos a agregar", "Index (posicin)"
El primer parmetro es obligatorio, y es el elemento que vamos a aadir al control List.
El segundo parmetro no es obligatorio, es decir es opcional, y permite especificar el
lugar donde aadir el elemento, es decir la posicin. A este se le pasa un nmero
entero, por ejemplo 0, 1, 5 etc...Si no se especifica una posicin, el elemento que se
agrega es aadido al final de la lista.
Por ejemplo, si quisiera agregar 5 nombres de pases en un control llamado List1,
cuando presionamos un Command1 :
Private Sub Command1_Click()

List1.AddItem "Brasil"
List1.AddItem "Francia"
List1.AddItem "Italia"
List1.AddItem "Argentina"
List1.AddItem "venezuela"


End Sub

Al probar lo anterior, Visual Basic no di error al no indicar la posicin o el parmetro
Index, ya que como se dijo dicho parmetro es opcional.
Para eliminar un elemento se utiliza el mtodo RemoveItem. Este mtodo tiene un
parmetro llamado Index en el cual debemos indicar la posicin del elemento que
vamos a eliminar.
Por ejemplo:
Private Sub Command2_Click()

'Eliminamos el elemento 2 de la lista
List1.RemoveItem 2

End Sub
El ejemplo anterior eliminara de la lista el elemento "Italia". Te preguntars porque
elimina a "Italia" si este est en la posicin 3. En realidad est en la posicin 2, ya que
se comienza el conteo desde el 0, es decir en la lista del ejemplo anterior, "Brasil"
tiene el nmero 0, "Francia" el 1, "Italia" el 2 etc...
Importante: Al eliminar un elemento de la lista, el nmero relacionado al elemento o
Item a eliminar, debe estar en la lista, ya que si no dara un error al querer eliminar un
Item que no se encuentra.
EJEMPLO SIMPLE PARA AGREGAR Y ELIMINAR ELEMENTOS DE UN
CONTROL LIST
Para el siguiente ejemplo colocar los siguientes controles en un formulario como est
en la imagen:



Un control Label1 y en el Caption escribir "Nombre". Un Command1 y en el Caption
"Aadir". Al Command2 "Eliminar Seleccionado". Luego agrega un Text1 al lado del
control Label1 y un control List1.
El elemento que escribamos en el Text1, cuando se presione " Aadir " se agregar al
control List1, cuando presionemos el Command2 se eliminar de la lista el elemento
que se encuentre seleccionado.





Colocar el cdigo en el formulario:
Private Sub Command1_Click()
If Text1 = "" Then
MsgBox "Debe ingresar un nombre para poder agregar un elemento",
vbQuestion + vbOKOnly, "Datos incompletos"
'Salimos de la rutina ya que no se ha ingresado nada en el control
text1
Exit Sub
End If

'Agregamos el contenido del Text1 en el control List1
List1.AddItem Text1
End Sub

Private Sub Command2_Click()
'Si la lista no est vaca entonces podemos eliminar
If List1.ListIndex <> -1 Then
'Eliminamos el elemento que se encuentra seleccionado
List1.RemoveItem List1.ListIndex
End If
End Sub

En el ejemplo anterior cuando se presiona aadir, antes de utilizar el mtodo AddItem
para aadir el contenido del Text1, se comprueba mediante un IF que el Text1 no est
vaco. Si est vaco se muestra un mensaje de error y se sale de la rutina mediante
Exit sub. Si se ha ingresado algn texto, ignora la clusula IF Then y ejecuta la lnea
que aade el Item.
En el botn de Eliminar el elemento seleccionado se utilizan una propiedad que no se
coment llamada ListIndex. Esta propiedad nos devuelve el nmero del elemento que
se encuentra seleccionado actualmente. Cuando el ListBox no tiene ningn elemento
seleccionado, el valor de ListIndex es de -1. Para que no de error al querer eliminar un
elemento que no se encuentre seleccionado, primero debemos comprobar que el valor
de ListIndex es distinto a -1, por ejemplo
If List1.ListIdex <> -1 Then ....
Si el valor es distinto a -1 quiere decir que hay un elemento seleccionado, entonces se
procede a la eliminacin del mismo, utilizando el mtodo RemoveItem pasndole
como parmetro el nmero de ListIndex.
PROPIEDAD SORTED:
Si quisiramos ordenar el contenido, es decir los elementos del control List en forma
alfabtica, debemos utilizar la propiedad Sorted.
Esta propiedad no se puede utilizar en tiempo de ejecucin, si no que la debemos
establecer en tiempo de diseo desde la ventana de propiedades. Si la propiedad est
en True, la lista de elementos se mostrar en forma ordenada, si est en False sin
ordenar. Por defecto esta propiedad est con el Valor False.
ELIMINAR ELEMENTOS CON EL MTODO CLEAR
Para eliminar todo el contenido de un control ListBox se utiliza el mtodo o funcin
llamado Clear.
Por ejemplo:
Private Sub Command1_Click()

'Elimina todo el contenido del ListBox
List1.Clear

End Sub
Este mtodo no necesita ningn parmetro, solo ejecutarlo para que todo el contenido
del control sea eliminado. Tampoco produce un error si ejecutamos Clear y el ListBox
no tiene elementos, es decir si los tiene los elimina, si no tiene elementos y se ejecuta
Clear, no ocurre nada.
PROPIEDAD LISTCOUNT
La propiedad ListCount devuelve la cantidad de elementos que contiene el control.
Por ejemplo, en las siguientes lneas, cuando se presiona un Command1, se agregan 3
elementos. Luego se muestra un mensaje, mediante un MsgBox, con la cantidad de
elementos del control, consultando el valor de la propiedad ListCount :

Private Sub Command1_Click()

'Agregamos 3 elementos al listado
List1.AddItem "Enero"
List1.AddItem "Febrero"
List1.AddItem "Marzo"


'Mostramos medianete un mensaje la cantidad de elementos
'del contenido del ListBox, en este caso devuelve 3
MsgBox List1.ListCount

End Sub

PROPIEDAD LIST
La propiedad List devuelve o establece los elementos contenidos en la lista del control.
Esta propiedad lleva un parmetro que indica el nmero del elemento que se quiere
consultar.
Un ejemplo: si quisiera mostrar en un Label1 el texto del elemento que se selecciona,
haramos lo siguiente:

Colocar un List1 y un Label1. Pegar esto en el formulario:
Private Sub Form_Load()
'Agregamos 3 elementos al listado
List1.AddItem "Enero"
List1.AddItem "Febrero"
List1.AddItem "Marzo"
End Sub

Private Sub List1_Click()
'Cuando hacemos Click en un elemento del List1 _
mostramos en el Label1 el texto del elemento
Label1 = List1.List(List1.ListIndex)
End Sub

En el cdigo anterior, cuando carga el formulario en el evento Load, se agregan 3
elementos cualquiera. El restante cdigo se encuentra en el evento Click del control
List, por eso se ejecutar cada vez que hagamos un Click en el mismo, y utilizando la
propiedad List y pasndole otra propiedad ya vista " ListIndex ", obtenemos el texto
del elemento actualmente seleccionado.
Si pasramos un nmero, nos mostrara el texto del elemento que corresponde a ese
nmero dentro del ListBox. Siguiendo el ejemplo anterior en el que tenamos 3
elementos, si se hiciera esto

Private Sub List1_Click()
Label1 = List1.List(2)
End Sub

...el control Label1 mostrara el texto del elemento 2, que sera "Marzo". Esto como ya
se indic antes es porque el primer elemento en la lista es el 0, que en este caso
corresponde a "Enero", el segundo elemento es el 1, en este caso "Febrero" , etc...

OTRAS PROPIEDADES DEL CONTROL LISTBOX SON:
Propiedad Backcolor : Establece el color de fondo del control
Propiedad Enabled : Permite habilitar o deshabilitar el control ListBox - Valores
True y False
Propiedad Font : Establece el tipo de fuente, tamao estilo etc... de los
elementos
Propiedad ForeColor : Establece el color de la fuente de los elementos
Propiedad Height y Width : Establece el ancho y alto del control
Propiedad MultiSelect : Permite indicar si el ListBox se podr seleccionar mas
de un elemento
Propiedad Visible : Si est en True el control ser visible si est en False estar
oculto










EVENTOS DEL CONTROL LISTBOX
Los eventos principales del control son:
Evento Click: Ocurre cuando el usuario presiona y libera un botn del mouse
encima de un objeto.
Evento DblClick: Ocurre cuando el usuario presiona y libera un botn del mouse
y despus lo vuelve a presionar y liberar sobre un objeto.
Evento DragDrop: Ocurre cuando finaliza una operacin de arrastrar y colocar.
en este enlace hay un ejemplo simple del uso de este evento: DragDrop entre
dos listbox
Evento DragOver: Ocurre cuando una operacin de arrastrar y colocar est en
curso.
Evento GotFocus: Ocurre cuando el control recibe el enfoque.
Evento LostFocus: Ocurre cuando un objeto Pierde el enfoque el control
Evento ItemCheck: Ocurre cuando la propiedad Style de un control ListBox es 1
(casillas de verificacin) y la casilla de verificacin de un elemento en el control
ListBox est activada o desactivada.
Evento KeyDown: Ocurre cuando el usuario presiona una tecla mientras un
objeto tiene el enfoque.
Evento KeyPress: Ocurre cuando el usuario presiona y libera una tecla ANSI.
Evento KeyUp: se produce cuando el usuario libera una tecla mientras el control
tiene el enfoque.
Evento MouseDown: Ocurre cuando el usuario presiona el botn del mouse
mientras un objeto tiene el enfoque.
Evento MouseMove: Ocurre cuando el usuario mueve el mouse.
Evento MouseUp: Ocurre cuando el usuario libera el botn del mouse mientras
un objeto tiene el enfoque.
Evento Scroll: Ocurre cuando cambia la posicin de un cuadro de
desplazamiento en un control, es decir cuando se mueve la barra de Scoll
Evento Validate: Se produce cuando un control pierde el enfoque en favor de un
control que produce una validacin.

Вам также может понравиться