Colabora
 

Manejo del ListView

 

Fecha: 12/Dic/2007 (10-12-07)
Autor: Miguel Urcia Carlos - [email protected]

 


Introducción

Este es un ejemplo de cómo utilizar el componente Listview de CSharp. En este artículo te muestro como agregar y eliminar datos a dicho componente, y también el uso de TimeSpan, que en este ejemplo lo utilizo para calcular la edad.
Bueno espero que les sea de su utilidad.

 

Diseño del Formulario

shami_listview_01

 

Nota: Agregar un Label y en su propiedad Name colocar lblcodigo y en la propiedad Text colocar el valor 1, esto nos permitirá autogenerar el código.

 

Acá les muestro el Código:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication2
{
    public partial class FrmListView : Form
    {
        public FrmListView()
        {
            InitializeComponent();
        }
        //El Label lblcodigo está oculto, y en su propiedad text colocar 1 para poder generar
        //el código...
        private void btnagregar_Click(object sender, EventArgs e)
        {

            int edad;
            string f1;

            f1 = dtfecnaci.Value.ToShortDateString();
            TimeSpan diferencia = Convert.ToDateTime(DateTime.Now.ToShortDateString()) 
                                - Convert.ToDateTime(f1);
            edad = Convert.ToInt16(diferencia.Days.ToString()) / 365; //aca obtengo la edad

            ListViewItem elemeneto = new ListViewItem();
            elemeneto = listView1.Items.Add(lblcodigo.Text);
            elemeneto.SubItems.Add(txtapellidos.Text);
            elemeneto.SubItems.Add(txtnombres.Text);
            elemeneto.SubItems.Add(edad.ToString());
            elemeneto.SubItems.Add(txtelefono.Text);
            elemeneto.SubItems.Add(cbosexo.Text);
            Limpiar();
            GeneraCodigo();
        }

        private void FrmListView_Load(object sender, EventArgs e)
        {
            listView1.Columns.Add("Código", 70, HorizontalAlignment.Left);
            listView1.Columns.Add("Apellidos", 150, HorizontalAlignment.Left);
            listView1.Columns.Add("Nombre(s)", 150, HorizontalAlignment.Left);
            listView1.Columns.Add("Edad", 50, HorizontalAlignment.Left);
            listView1.Columns.Add("Teléfono", 80, HorizontalAlignment.Left);
            listView1.Columns.Add("Sexo", 90, HorizontalAlignment.Left);
            listView1.View = View.Details;

        }

        private void Limpiar()
        {
            foreach (Control obj in this.groupBox1.Controls)
            {
                if (obj is TextBox)
                {
                    obj.Text = "";
                }
                txtapellidos.Focus();
            }
        }

        private void GeneraCodigo()
        {
            int c;
            int nuevo;
            string elemento;
            c = listView1.Items.Count - 1;
            elemento = listView1.Items[c].Text.ToString();
            nuevo = Convert.ToInt16(elemento) + 1;
            lblcodigo.Text = nuevo.ToString();

        }
        private void SoloLetras(object sender, KeyPressEventArgs e)
        {
            int keyascii = Convert.ToInt32(e.KeyChar);
            if ((keyascii >= 65 && keyascii <= 90) || 
                (keyascii >= 97 && keyascii <= 122) || 
                (keyascii == 32) || (keyascii == 8))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        private void SoloNumeros(object sender, KeyPressEventArgs e)
        {

            int keyascii = Convert.ToInt32(e.KeyChar);
            if ((keyascii >= 48 && keyascii <= 57) || (keyascii == 8))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        private void btneliminar_Click(object sender, EventArgs e)
        {
            int numindex = listView1.Items.Count - 1;
           
            if (listView1.Items.Count>0)
            {
                listView1.Items.Remove(listView1.Items[numindex]);
            }

            if (Convert.ToInt16(listView1.Items.Count) == 0)
            {
                lblcodigo.Text = "1";
            }         
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}

Espero que sea de su utilidad Atte Shami....

 


Código de ejemploNombreFichero.zip

 

Fichero con el código de ejemplo: Shami_listview.zip- 16 KB

(MD5 checksum: C24EF4D2312601814B8BD7BEB8AA3545)

 


Ir al índice principal de el Guille