Está en la página 1de 9

USO DE LISTVIEW EN WINDOWS FORMS APLICATTION

1. Creación de un nuevo proyecto con el nombre de Uso-List-View

Seleccionamos en Templates Visual Basic y luego Windows Forms Application y le


escribimos el nombre que queremos darle al proyecto.

2. Diseñamos el siguiente formulario

Controles usados en el formulario:


- Labels (Etiquetas)
- Textbox (Caja de texto)
- Buttons (Botones)
- ListView (Lista)
- GroupBox (Contenedor, es opcional)
3. Cambiamos de cada TextBox su propiedad Name de la forma
siguiente:

Para acceder a las propiedades de un control en el formulario, en este caso del


TextBox, debe darse Click derecho sobre el TextBox y elegir la opción propiedades.
Por consiguiente se nos abrirá la siguiente ventana de propiedades:

Cambiamos la Propiedad Name que tiene como valor TextBox1 por txtNombre,
puesto a que esta caja de texto le pertenece al Nombre que se va a ingresar. Para
las cajas de texto siguientes serán como se muestra en la tabla:
Control Name
TextBox1 txtNombre
TextBox2 txtApellido
TextBox3 txtEdad
Button1 btnRegistrar
Button2 btnActualizar
Button3 btnEliminar
ListView lstLista

4. Una vez cambiado los Names de los controles usados pasamos a


darle un formato al control ListView.
a. Seleccionamos el ListView, entramos a sus Propiedades (Properties) y
cambiamos el valor de la propiedad View por Details
b. Asimismo, en las propiedades del ListView seleccionado, cambiamos en la
propiedad GridLines por el valor de True

c. Finalmente, en las propiedades del ListView seleccionado, buscamos la


propiedad Columns y al encontrarlo hacemos click en el botón para que nos
muestra la siguiente ventana:
Al aparecer esta ventana, pulsamos sobre el botón Add para adicionar nuevas
columnas que se verán en la lista. En este caso agregaremos 3 nuevas columnas y
cambiaremos para cada una de ellas su propiedad Text con Nombre, Apellido y Edad.

Una vez realizado los pasos anteriores, el ListView nos debe quedar de la siguiente
manera:
5. PROGRAMACIÓN DEL BOTÓN REGISTRAR
a. Hacemos doble click en el botón registrar
b. Se nos creará el evento Click del botón

c. Codificamos dentro del evento click que se ha creado


Private Sub btnRegistrar_Click(sender As Object, e As EventArgs) Handles btnRegistrar.Click
Dim nombre As String
Dim apellido As String
Dim edad As String

'obtener los valores ingresados por el usuario


'en las cajas de texto

nombre = txtNombre.Text
apellido = txtApellido.Text
edad = txtEdad.Text

'Agregarlos en la lista (listview)


With lstLista.Items.Add(nombre)
.SubItems.Add(apellido)
.SubItems.Add(edad)
End With

'Borramos los campos ingresados en las cajas de texto


borrarCampos()
End Sub

- Fuera del evento Click creamos el siguiente Método


Sub borrarCampos()
txtNombre.Text = ""
txtApellido.Text = ""
txtEdad.Clear()

End Sub
6. PROGRAMACIÓN DEL BOTÓN ACTUALIZAR
Para la funcionalidad actualizar se utilizará los siguientes eventos:
- El evento del ListView llamado SelectedChanged y
- El evento del botón actualizar llamado Click
Nota: (Ambos eventos se crean haciendo doble click sobre su sí mismo)

a. Trabajaremos primero con el evento SelectedChanged , hacemos doble click


sobre el listview para activarlo y codificamos lo siguiente:
Private Sub lstLista_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstLista.SelectedIndexChanged
'obtener el índice de la fila seleccionada
indice = lstLista.FocusedItem.Index

'obtenemos los datos de la fila seleccionada


Dim nombre, apellido As String
Dim edad As Integer

If (indice >= 0) Then


nombre = lstLista.Items(indice).SubItems(0).Text
apellido = lstLista.Items(indice).SubItems(1).Text
edad = Integer.Parse(lstLista.Items(indice).SubItems(2).Text)

'pasarlos a las cajas de texto


txtNombre.Text = nombre
txtApellido.Text = apellido
txtEdad.Text = edad
End If

End Sub

Nota: Debemos crear la variable índice fuera del evento SelectedChanged

b. Ahora, haremos doble click sobre el botón actualizar para activar el evento
click y codificaremos lo siguiente:
Private Sub btnActualizar_Click(sender As Object, e As EventArgs) Handles btnActualizar.Click
'pasamos los valores cambiados de las cajas de texto
lstLista.Items(indice).SubItems(0).Text = txtNombre.Text
lstLista.Items(indice).SubItems(1).Text = txtApellido.Text
lstLista.Items(indice).SubItems(2).Text = txtEdad.Text

borrarCampos()
End Sub
7. PROGRAMACIÓN DEL BOTÓN ELIMINAR
a. Hacemos doble click en el botón eliminar para que se active el evento click y
codificamos lo siguiente:
Private Sub btnEliminar_Click(sender As Object, e As EventArgs) Handles btnEliminar.Click
'Eliminamos la fila
lstLista.Items.RemoveAt(indice)
indice = -1

borrarCampos()
End Sub
CÓDIGO FUENTE COMPLETO:
Public Class Form1
'Variable creada para que guarde el indice de la fila seleccionada.
Dim indice As Integer

Private Sub btnAgregar_Click(sender As Object, e As EventArgs) Handles btnAgregar.Click


Dim nombre As String
Dim apellido As String
Dim edad As Integer

'obtener los valores ingresados por el usuario


'en las cajas de texto
nombre = txtNombre.Text
apellido = txtApellido.Text
edad = txtEdad.Text

'Agregarlos en la lista (listview)


With lstLista.Items.Add(nombre)
.SubItems.Add(apellido)
.SubItems.Add(edad)
End With

'borramos los campos ingresados en la caja de texto


borrarCampos()
End Sub

Sub borrarCampos()
txtNombre.Text = ""
txtApellido.Text = ""
txtEdad.Clear()
End Sub

Private Sub btnActualizar_Click(sender As Object, e As EventArgs) Handles btnActualizar.Click


'pasamos los valores cambiados de las cajas de texto
lstLista.Items(indice).SubItems(0).Text = txtNombre.Text
lstLista.Items(indice).SubItems(1).Text = txtApellido.Text
lstLista.Items(indice).SubItems(2).Text = txtEdad.Text
borrarCampos()
End Sub

Private Sub lstLista_SelectedIndexChanged(sender As Object, e As EventArgs) Handles


lstLista.SelectedIndexChanged
'obtener el indice de la fila seleccionada
indice = lstLista.FocusedItem.Index

'obtenemos los datos de la fila seleccionada


Dim nombre, apellido As String
Dim edad As Integer

If (indice >= 0) Then


nombre = lstLista.Items(indice).SubItems(0).Text
apellido = lstLista.Items(indice).SubItems(1).Text
edad = Integer.Parse(lstLista.Items(indice).SubItems(2).Text)

'pasarlos a las cajas de texto


txtNombre.Text = nombre
txtApellido.Text = apellido
txtEdad.Text = edad
End If

End Sub

Private Sub btnEliminar_Click(sender As Object, e As EventArgs) Handles btnEliminar.Click


'Eliminamos la fila
lstLista.Items.RemoveAt(indice)
indice = -1

borrarCampos()
End Sub
End Class

Si tienes dudas o consultas, no dudes en escribirme en:


https://www.facebook.com/SandersArenas

https://www.youtube.com/c/SandroArenas

También podría gustarte