Quick Tips: Busca em um ListView

Nesta quick tip veremos como realizar buscas em um listView.

Quick Tips: Busca em um ListView

 

Nesta quick tip veremos como realizar buscas em um listView.

 

Insira um botão e um ListView no formulário e altere a propriedade View para Details.

Insira também um textBox e um botão Buscar, como na figura abaixo.




Declare uma classe Cliente que será quem exibiremos e buscaremos na listView.

 

public class Cliente

{

public int Codigo { get; set; }

public String Nome { get; set; }

public String Bairro { get; set; }

  }

 

Abaixo está o código para carregar a lista de clientes dinamicamente na ListView.

private void BtnLoad_Click(object sender, EventArgs e)

{

listView1.Groups.Add("Realengo","Realengo");

 

//Cria lista de clientes

 List<Cliente> lista = new List<Cliente>();

//Cria, alimenta e adiciona clientes à lista

Cliente c = new Cliente();

c.Codigo = 1;

c.Nome = "Ricardo";

c.Bairro = "Recreio";

lista.Add(c);

 

c = new Cliente();

c.Codigo = 2;

c.Nome = "Julia";

c.Bairro = "Barra";

lista.Add(c);

 

c = new Cliente();

c.Codigo = 3;

c.Nome = "Givonilda";

c.Bairro = "Recreio";

lista.Add(c);

 

c = new Cliente();

c.Codigo = 4;

c.Nome = "Maria";

c.Bairro = "Irajá";

lista.Add(c);

//Recupera lista de propriedades da classe Cliente

PropertyInfo[] props = typeof(Cliente).GetProperties();

//Percorre lista de propriedades da classe Cliente

foreach (PropertyInfo p in props)

{

//Cria uma nova coluna

ColumnHeader col = new ColumnHeader();

//Adiciona ao listView

listView1.Columns.Add(col);

//Altera o text atribuindo o nome da propriedade de Cliente

col.Text = p.Name;

//Ajusta o tamanho da coluna

col.Width = 100;

}

//Percorre lista de clientes

foreach (Cliente cliente in lista)

{

//Adiciona um item no ListView

 ListViewItem item = listView1.Items.Add(cliente.Codigo.ToString());

//Adicoina os subItems

item.SubItems.Add(cliente.Nome);

item.SubItems.Add(cliente.Bairro);

}

}

 

Código do botão Buscar

 

private void BtnBuscar_Click(object sender, EventArgs e)

{

//verifica se tem items na lista

if(listView1.Items.Count > 0){

//procura o item pelo texto

ListViewItem foundItem =

listView1.FindItemWithText(txtBusca.Text, true, 0, true);

//verifica se o item foi encontrado

if (foundItem != null)

{

//Verifica se não existe o grupo Localizado

//senão tiver cria grupo para destacar o item localizado

if(listView1.Groups["Localizado"]==null)

listView1.Groups.Add("Localizado","Localizado");

//se o grupo possuir items entao remove o mesmo do grupo

//para que ele volte ao grupo default

if (listView1.Groups["Localizado"].Items.Count > 0)

listView1.Groups["Localizado"].Items[0].Group = null;

//aloca o item encontrado ao grupo localizado

foundItem.Group = listView1.Groups["Localizado"];

}

}

}

 

Resultado da execução da rotina.




É isso aí pessoal, vou ficando por aqui.

Fiquem a vontade para criticar, tirar dúvidas e sugerir novos temas.
Abraço.

 

 

 

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados