miércoles, 7 de marzo de 2007

Control ListBox

Una vez que hayamos depositado un control ListBox en un formulario podremos asignar algunas propiedades.
  • Propiedad Sorted , como true para crear controles ListBox que se ordenan automaticamente siguiendo un orden alfabético.
  • Propiedad Columns , se utiliza para para crear un tipo diferente de cuadro de lista con varias columnas y un barra de desplazamiento horizontal.
  • Propiedad IntegralHeight se modifica en contadas ocasiones, pero merece algún comentario por que indirectamente aparecerá en su camino durante la programacion. De manera predeterminada Visual basic ajusta automaticamente la altura de los controles ListBox para que puedan mostrar filas completas; ningun elemento se muestra sólo parcialmente. La altura asignada exactamente el control depende de varios factores, incluyendo los atrinutos defuente . este comportamiento suele ser correcto y normalmente no tendrá que preocuparse de este tema. pero si desea modificar el tamaño del control para alinearlo con otros controles contenidos en el formulario o con el borde del formulario, esta caracteristica puede impedir que realice este tipo de ajuste. En este caso, deberá asignar el valor de false a la propiedad IntegralHeight en la ventana de propiedades.
  • Método AddItem , permite llenar los controles Listbox en tiempo de ejecución.
Private Sub Form_Load()
List1.AddItem "Primero"
List1.AddItem "Segundo"
List1.AddItem "Tercero"
End Sub

En el mundo de las aplicaciones reales rara véz se cargaran los datos asi, con frecuencia sus datos estaran almacenados en un array o en una base de datos, tendra que barrer el origen de sus datos con un bucle for..Next.

Private Sub Form_Load()
' misdatos es un array de cadenas
For i = LBound(misdatos) To UBound(misdatos)
List1.AddItem misdatos(i)
End Sub

Si deseamos cargar muchos elementos en un listbox tambien podemos usar la funcion Choose

For i = 1 To 5
List1.AddItem Choose(i, "Lima", "Arequipa", "Tumbes", "Cajamarca", "Tacna")
Next

O tambien podemos usar las funciones de visual basic

For i=1 to 12
list1.AddItem MonthName(i)
Next

For i=1 to 7
list1.AddItem WeekDayName(i)
Next

Si desea cargar docenas o cientos de elementos, una mejor forma de actuar es almacenarlos en un archivo de texto y hacer que su programa lea el archivo cuando se cargue el formulario. De esta forma, más tarde podrá modificar el contenido de sus controles ListBox sin tener que tocar el codigo fuente:

Private Sub Form_Load()
Dim elemento As String
On Error GoTo aviso
Open "Nombres.dat" For Input As #1
Do Until EOF(1)
Line Input #1, elemento
List1.AddItem elemento
Loop
Close #1
Exit Sub
aviso:
MsgBox "No fue posible cargar los datos al cuadro de lista"
End Sub


No hay comentarios: