clase listview

31
06/06/22 I D A T - Javier M. Rosales Guerra 1 Clase ListView Prof. Javier Rosales Guerra

Upload: ronald-anderson-tumbalobos-navarro

Post on 12-Nov-2014

73 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Clase ListView

08/04/23 I D A T - Javier M. Rosales Guerra 1

Clase ListView

Prof. Javier Rosales Guerra

Page 2: Clase ListView

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

Page 3: Clase ListView

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)

Page 4: Clase ListView

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

Page 5: Clase ListView

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.

Page 6: Clase ListView

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)

Page 7: Clase ListView

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)

Page 8: Clase ListView

08/04/23 I D A T - Javier M. Rosales Guerra 8

Ejemplo de Aplicación01

Page 9: Clase ListView

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

Page 10: Clase ListView

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

Page 11: Clase ListView

08/04/23 I D A T - Javier M. Rosales Guerra 11

Ejemplo de Aplicación02

Page 12: Clase ListView

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

Page 13: Clase ListView

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

Page 14: Clase ListView

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

Page 15: Clase ListView

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

Page 16: Clase ListView

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

Page 17: Clase ListView

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

Page 18: Clase ListView

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.

Page 19: Clase ListView

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

Page 20: Clase ListView

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

Page 21: Clase ListView

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

Page 22: Clase ListView

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

Page 23: Clase ListView

08/04/23 I D A T - Javier M. Rosales Guerra 23

Validar con ErrorProvider

Page 24: Clase ListView

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

Page 25: Clase ListView

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

Page 26: Clase ListView

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

Page 27: Clase ListView

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.

Page 28: Clase ListView

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

Page 29: Clase ListView

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.

Page 30: Clase ListView

08/04/23 I D A T - Javier M. Rosales Guerra 30

Formulario MDI

Page 31: Clase ListView

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.