El siguiente ejercicio ilustra el uso del ListBox. El programa final tendrá la siguiente aparaciencia
En el cuadro de texto se escribirá un nombre y se presioná Agregar. Este comando hará la acción de ingresar al cuadro de Lista el nombre digitado. El botón eliminar puede eliminar un nombre del cuadro de lista. Hay que seleccionar primero el nombre a eliminar y posteriormente presionar el botón. Por cada estudiante ingresado se aumenta el número que aparece en el label (etiqueta) en la parte inferior del cuadro de lista (listBox). Si se elimina un estudiante también se actualiza el contador. Se usa para el ejercicio algunas propiedades del cuadro ListBox como SelectedItem (ListBox1.SelectedItem) la cual nos devuelve el valor del item que tenemos seleccionado (en nuestro caso el nombre del estudiante). Para garantizar que tengamos seleccionado un estudiante se hace la instrucción:
If lstEstudiantes.SelectedItem <> "" Then
...
...
End If
Esto garantiza que no eliminaremos si el item es "" (vacío) porque talvés
no hemos seleccionado los datos.
El código se muestra a continuación y está debidamente comentado para ir detallando
lo que se va haciendo.
Public Class Form1
'-------------------
'FIJEMONOS EN EL AMBITO DE LA VARIABLE
'Esta variable declarada aqui, nos servirá para llevar el control de los estudiantes
'ingresados a la lista y es visible por todos los eventos, rutinas y procedimientos del formulario
'-------------------
Dim n As Integer = 0
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalir.Click
'Sale del programa
Me.Dispose()
End Sub
Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click
'Si no se ha ingresado un texto, entonces se valida para que no se ingresen datos en blanco
'la sentencia Exit Sub hace que se salga de la rutina para que no siga haciendo las instrucciones.
If txtEstudiante.Text = "" Then
MessageBox.Show("No ha ingresado el nombre del estudiante...")
Exit Sub
End If
'Agrega al estudiante a la lista
lstEstudiantes.Items.Add(txtEstudiante.Text)
'Se agregar un estudiante a la cuenta
n = n + 1
'Pone en el label el total de estudiantes ingresados.
lblMensaje.Text = "Estudiantes : " & n
'Limpia la caja de texto para esperar otro valor
txtEstudiante.Text = ""
'Para ir a la caja de texto automáticamente
txtEstudiante.Focus()
End Sub
Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
'------------------
'SelectedItem es una propieda que nos permite saber el valor del item seleccionado en una lista, por eso para
'eliminar se debe preguntar primero si el item seleccionado es diferente de una cadena vacía, esto nos garantizará
'que primero debemos seleccionar un elemento y después presionar el botón Eliminar.
'------------------
If lstEstudiantes.SelectedItem <> "" Then
'-----------------
'La propiedad SelectedItem de la lista nos da el item actualmente seleccionado
'se elimina el seleccionado
'-----------------
lstEstudiantes.Items.Remove(lstEstudiantes.SelectedItem)
'se resta de n un estudiante
n = n - 1
'y se actualiza el label que lleva el control visual
lblMensaje.Text = "Estudiantes : " & n
End If
End Sub
End Class
La solución completa la pueden descargar de aquí :
Ejercicio 1