Está en la página 1de 5

Control ListBox

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.
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()
List1.RemoveItem 2
End Sub

'Eliminamos el
elemento 2 de la
lista

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"
Exit Sub
End If
List1.AddItem Text1
'Si la lista no est
End Sub
vaca entonces
podemos eliminar
Private Sub Command2_Click()
If List1.ListIndex <> -1 Then
'Eliminamos el
elemento que se
List1.RemoveItem List1.ListIndex
encuentra
End If
seleccionado
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()


List1.Clear
End Sub

'Elimina todo el
contenido del
ListBox

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()


List1.AddItem "Enero"
List1.AddItem "Febrero"
List1.AddItem "Marzo"
MsgBox List1.ListCount
End Sub

'Agregamos 3
elementos al
listado

'Mostramos medianete un mensaje


la cantidad de elementos
'del contenido del ListBox, en este
caso devuelve 3

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()
List1.AddItem "Enero"
List1.AddItem "Febrero"
List1.AddItem "Marzo"
End Sub
Private Sub List1_Click()
Label1 = List1.List(List1.ListIndex)
End Sub

'Agregamos 3
elementos al
listado

'Cuando hacemos
Click en un elemento
del List1 mostramos
en el Label1 el texto
del elemento

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

También podría gustarte