08/04/23 I D A T - Javier M. Rosales Guerra 1
Clase ListView
Prof. Javier Rosales Guerra
08/04/23 I D A T - Javier M. Rosales Guerra 2
Clase ListView Representa un control de vista de lista de
Windows, el cual muestra una colección de elementos que se pueden ver mediante una de cuatro vistas distintas.
Muestra una lista de elementos con iconos o en columnas
Puede mostrar cuatro vistas mediante los valores de la propiedad View LargeIcon SmallIcon List Details
08/04/23 I D A T - Javier M. Rosales Guerra 3
Clase ListView Agregar elementos. Cada elemento es un dato de tipo ListViewItem. Se pueden agregar en tiempo de diseño mediante el editor
de la propiedad Items de la ventana de propiedades. Items hace referencia a una colección de ListViewItems.
En tiempo de ejecución se agregan con el método Add de la colección ListViewItemsCollection.'Agrega un elemento con la etiqueta "Elemento 1"ListView1.Items.Add("Elemento 1")‘Agrega un nuevo elemento miItemDim miItem As New ListViewItem("Elemento 1")ListView1.Items.Add(miItem)'Agrega un nuevo elemento "Elemento 1", con el primer icono de la
lista de imágenes.ListView1.Items.Add("Elemento 2", 0)
08/04/23 I D A T - Javier M. Rosales Guerra 4
Clase ListView Agregar elementos en columnas.
El formato tabular sólo está disponible con la propiedad View establecida a Details.
Es necesario crear las columnas mediante el editor de columnas al que se accede mediante la propiedad Columns.
El contenido de la primera columna corresponde al elemento ListViewItem. Cada columna siguiente es un elemento de la colección
SubItems de la clase ListViewItem. Se puede contruir un ListViewItem con sus elementos a
partir de un array de cadenas.
Dim items() As String =New String() {_TextBox1.Text, TextBox2.Text, TextBox3.Text}
ListView1.Items.Add(New ListViewItem(items))
08/04/23 I D A T - Javier M. Rosales Guerra 5
Clase ListView Referencia a los elementos.
Propiedad SelectedIndices. Devuelve una colección con los índices seleccionados. Hay que tener en cuenta que se pueden seleccionar varios
elementos. ListView1.SelectedIndices(0).Item, devuelve un entero con el
índice el primer elemento seleccionado Propiedad SelectedItems. Devuelve una colección de
ListViewItem con los elementos seleccionados. ListView1.SelectedItems(0).Text, devuelve la etiqueta del
primer elemento seleccionado. Propiedad FocusedItem. Devuelve el ListViewItem que ha
recibido el foco. Referencia a los subelementos.
Se realiza a partir de la colección SubItems del elemento. ListView1.SelectedItems(0).SubItems(0).Text, devuelve
la etiqueta del primer subelemento de la fila seleccionada.
08/04/23 I D A T - Javier M. Rosales Guerra 6
Clase ListView Control del elemento seleccionado.
Evento ItemActivate. Se produce cuando se activa un elemento.
Evento SelectedIndexChanged. Se produce cuando se cambia el índice del elemento seleccionado. Se produce antes de ItemActivate.
Eliminación de elementos. Método RemoveAt de la colección
ListViewItemsCollection, indicándole el índice del elemento a borrar.ListView1.Items.RemoveAt(ListView1.SelectedIndices(0))
Método Remove de la colección ListViewItemsCollection, indicándole el elemento a borrar.ListView1.Items.Remove(ListView1.FocusedItem)
08/04/23 I D A T - Javier M. Rosales Guerra 7
Estructura With Establece por defecto a un control dentro
de la zonaWith ListView1.Items.Add(“L01”)
.SubItems.Add(“Lima”)
.SubIItems.Add(“45”)
End With Propiedades
GridLines: Lineas guía (true) View: Modo de vista FullRowSelect: Selecciona toda la fila (True) Columns: Define las columnas (Colección)
08/04/23 I D A T - Javier M. Rosales Guerra 8
Ejemplo de Aplicación01
08/04/23 I D A T - Javier M. Rosales Guerra 9
Ejemplo de Aplicación01 Código del botón Agregar
Private Sub BtnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAgregar.Click
With ListView1.Items.Add(txtNom.Text) .SubItems.Add(txtTelf.Text) .SubItems.Add(txtMail.Text) End With End Sub
08/04/23 I D A T - Javier M. Rosales Guerra 10
Ejemplo de Aplicación01 Código del evento KeyDown
Private Sub ListView1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ListView1.KeyDown
If e.KeyCode = Keys.Delete Then BtnEliminar_Click(sender, e) End If End Sub Código del botón Eliminar Private Sub BtnEliminar_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles BtnEliminar.Click ListView1.Items.Remove(ListView1.FocusedItem) End Sub
08/04/23 I D A T - Javier M. Rosales Guerra 11
Ejemplo de Aplicación02
08/04/23 I D A T - Javier M. Rosales Guerra 12
Ejemplo de Aplicación02 Variables de clase
Public Class FrmEmpleados 'Variables de Clase Dim vProc As String Dim vFila% Dim Ctrl As Control
Procedimiento para limpiar controlesSub Limpiar() For Each Ctrl In Me.GroupBox1.Controls If TypeOf Ctrl Is TextBox Or TypeOf Ctrl Is ComboBox Then Ctrl.Text = "" End If Next Ctrl.Focus() End Sub
08/04/23 I D A T - Javier M. Rosales Guerra 13
Ejemplo de Aplicación02 Código del evento Load del formulario
Private Sub FrmEmpleados_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Cargos() As String = {"Analista", "Programador", "WebMaster", "Digitador"}
Dim i% = 0 For i = 0 To Cargos.Length - 1 CboCargo.Items.Add(Cargos(i)) Next End Sub Código del botón Cancelar Private Sub BtnCancelar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnCancelar.Click GroupBox1.Enabled = False GroupBox2.Enabled = True Limpiar() End Sub
08/04/23 I D A T - Javier M. Rosales Guerra 14
Ejemplo de Aplicación02 Código del evento SelectedIndexChanged
Private Sub CboCargo_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CboCargo.SelectedIndexChanged
Select Case CboCargo.SelectedIndex Case 0 txtSueldo.Text = 2500 Case 1 txtSueldo.Text = 2000 Case 2 txtSueldo.Text = 1500 Case 3 txtSueldo.Text = 1000 End Select End Sub
08/04/23 I D A T - Javier M. Rosales Guerra 15
Ejemplo de Aplicación02 Código del botón Guardar
Private Sub BtnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGuardar.Click
If vProc = "Add" Then With LsvEmp.Items.Add(txtNom.Text) .SubItems.Add(CboCargo.Text) .SubItems.Add(txtSueldo.Text) End With Else vFila = LsvEmp.FocusedItem.Index LsvEmp.Items(vFila).SubItems(0).Text = txtNom.Text LsvEmp.Items(vFila).SubItems(1).Text = CboCargo.Text LsvEmp.Items(vFila).SubItems(2).Text = txtSueldo.Text End If GroupBox1.Enabled = False GroupBox2.Enabled = True Limpiar() End Sub
08/04/23 I D A T - Javier M. Rosales Guerra 16
Ejemplo de Aplicación02 Código del botón Agregar
Private Sub BtnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAgregar.Click
vProc = "Add" GroupBox1.Enabled = True GroupBox2.Enabled = False txtNom.Focus() End Sub
Código del botón EliminarPrivate Sub BtnEliminar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnEliminar.Click LsvEmp.Items.Remove(LsvEmp.FocusedItem) End Sub
Código del botón Eliminar TodosPrivate Sub BtnElimTodos_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnElimTodos.Click LsvEmp.Items.Clear() End Sub
08/04/23 I D A T - Javier M. Rosales Guerra 17
Ejemplo de Aplicación02 Código del botón Modificar
Private Sub BtnModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnModificar.Click
vFila = LsvEmp.FocusedItem.Index If vFila = -1 Then MsgBox("Debe seleccionar un elemento",
MsgBoxStyle.Exclamation, "Aviso") Else txtNom.Text = LsvEmp.Items(vFila).SubItems(0).Text CboCargo.Text = LsvEmp.Items(vFila).SubItems(1).Text() txtSueldo.Text = LsvEmp.Items(vFila).SubItems(2).Text GroupBox1.Enabled = True GroupBox2.Enabled = false vProc = "Mod" End If End Sub
08/04/23 I D A T - Javier M. Rosales Guerra 18
Formularios MDI Aplicaciones MDI (Multiple Document
Interface). Existe una ventana MDI primaria (padre)
que actúa como contenedor de ventanas MDI secundarias (hijas).
Es útil cuando una aplicación requiere de varias ventanas de características generales o para navegar entre las distintas ventanas de una aplicación.
08/04/23 I D A T - Javier M. Rosales Guerra 19
Evento KeyDown Este evento ocurre cada vez que el usuario presiona
una tecla. El evento permite programas todas las teclas del
teclado incluyendo teclas especiales. Ejemplo:
Private Sub ListView1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ListView1.KeyDown
If e.KeyCode = Keys.Delete Then BtnEliminar_Click(sender, e) End If End Sub
Private Sub BtnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEliminar.Click
ListView1.Items.Remove(ListView1.FocusedItem) End Sub
08/04/23 I D A T - Javier M. Rosales Guerra 20
Evento KeyDown El evento KeyDown permite ejecutar
procedimientos asociados a determinados controles.
Ejemplo:If e.KeyCode=Key.F2 Then
BtnAgregar_Click(sender,e)
End If
If e.KeyCode=Key.F3 ThenBtnModificar_Click(sender,e)
End If
08/04/23 I D A T - Javier M. Rosales Guerra 21
Validaciones
Es un proceso que consiste en verificar que el ingreso de datos es correcto y válido.
Existen tres formas de validar la entrada de datos: Mediante el control ErrorProvider Mediante el evento KeyPress Mediante la estructura Try…Catch
08/04/23 I D A T - Javier M. Rosales Guerra 22
Validar con ErrorProvider
1. Agregar al formulario el control ErrorProvider (este se agregará en la parte inferior del formulario)
2. Configure la propiedad Name del control ErrorProvider
Name=Err
3. Active el evento Validating de la caja de texto que desea validar
08/04/23 I D A T - Javier M. Rosales Guerra 23
Validar con ErrorProvider
08/04/23 I D A T - Javier M. Rosales Guerra 24
Validar con ErrorProviderPrivate Sub txtRuc_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles txtRuc.Validating If txtRuc.Text.Length <> 11 Then Err.SetError(txtRuc, "Solo acepta 11 caracteres") e.Cancel = True 'Trunca el ingreso Else Err.SetError(txtRuc, "") 'Si no existe error e.Cancel = False If txtRuc.Text.StartsWith("10") Or txtRuc.Text.StartsWith("20") Then Err.SetError(txtRuc, "") 'Si no existe error e.Cancel = False Else Err.SetError(txtRuc, "Debe empezar con 10 0 20") e.Cancel = True 'Trunca el ingreso End If End If End Sub
08/04/23 I D A T - Javier M. Rosales Guerra 25
Validar con KeyPress Se activa cada vez que presionamos una tecla (Antes
que aparezca el carácter dentro del control) Se utiliza para validar el carácter que se permitirá
dentro de la caja Ejemplo:
Validar el No. de DNI y No. de RUC de tal modo que solo se acepte caracteres numéricos.
Private Sub txtRuc_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtRuc.KeyPress
If e.KeyChar = "." Or Char.IsWhiteSpace(e.KeyChar) Or Char.IsLetter(e.KeyChar) Then
e.Handled = True End If End Sub
08/04/23 I D A T - Javier M. Rosales Guerra 26
Operador de evento Handled
Todos los eventos tienen el operador Handled.
En este operador se incluyen todos los controles que usarán lo programado en dicho evento.
Ejemplo:Private Sub txtApe_Click(….) Handles txt.Ape.KeyPress,txtNom.KeyPress
08/04/23 I D A T - Javier M. Rosales Guerra 27
Estructura Try…Catch Es una estructura que permite controlar errores
producidos en tiempo de ejecución. Esta estructura “maneja” los errores producidos
diciendo al programa qué tiene que hacer cuando una de sus sentencias no funciona correctamente.
Como su nombre indica, los manejadores de error “atrapan” el problema utilizando la estructura Try…Catch y un objeto especial de manejo de errores denominado Err.
El objeto Err posee la propiedad Number gracias a la cual se puede identificar el número de error.
08/04/23 I D A T - Javier M. Rosales Guerra 28
Estructura Try…CatchTry With ListView1.Items.Add(txtNom.Text) .SubItems.Add(txtTelf.Text) .SubItems.Add(txtMail.Text) End With Catch ex As NullReferenceException MsgBox(ex.ToString) Catch ex As DivideByZeroException MsgBox("error") Catch ex As Exception MsgBox("error") End Try
08/04/23 I D A T - Javier M. Rosales Guerra 29
Formulario MDI (Multiple Document Interface)
Es una ventana especial que se emplea como ventana principal de un sistema.
Dentro de un MDI pueden estar contenidas otras ventanas.
Es útil cuando una aplicación requiere de varias ventanas de características generales o para navegar entre las distintas ventanas de una aplicación.
08/04/23 I D A T - Javier M. Rosales Guerra 30
Formulario MDI
08/04/23 I D A T - Javier M. Rosales Guerra 31
Formulario MDI Creación de formulario MDI
1. Agregar un nuevo WindowsForm al proyecto.2. Defina las siguientes propiedades del formulario:
Name: FrmPrincipal Text: Multidatos S.A.C. WindowState: Maximized IsMdiContainer: True
3. Configure el proyecto para que el formualrio de inicio sea FrmPrincipal.
Top Related