Usando o controle ListView

O controle ListView já deve ser um velho conhecido seu desde os tempos do VB 6.0 ele permite exibir uma lista de itens com textos e também com ícones para identificar o tipo de um item. O exemplo mais conhecido é o Windows Explorer que exibe uma lista de arquivos e pastas em uma estrutura de árvore.

O controle ListView fornece um grande número de propriedades que permite configurar sua aparência e comportamento de uma forma muito flexível. Dentre as principais propriedades citamos :

  1. View - permite alterar a forma nas quais os itens são exibidos
  2. LargeImageList , SmallImageList e StateImageList - permite especificar o objeto ImageList que contém as imagens exibidas para os itens
  3. Columns - permite o acesso a coleção que armazena os cabeçalhos das colunas
  4. Items - premite acessar os métodos para manipular os itens no controle
  5. Sorting - permite ordenar os itens alfabeticamente
  6. LabelEdit - permite ao usuário editar o texto de um item
  7. CheckedItems - permite saber quais itens estão marcados
  8. AllowColumnReorder - permite reconfigurar a ordem das colunas em tempo de execução
  9. FullRowSelect - permite a seleção de um item e subitem

Além desta propriedades o controle ListView também possui métodos e eventos que podemos usar em nossas aplicações aumentando assim as capacidades do controle ListView.  Vejamos alguns deles :

  1. BeginUpdate e EndUpdate : permite incluir itens em um ListView sem redesenhar o controle a cada item que é adicionado
  2. GetItemAt - permite determinar o item cujos subitens esta sendo clicado
  3. EnsureVisible - pode ser chamado para assegurar que o item especifico esta na área visível do controle.
  4. BeferoLabelEdit e AfterLabelEdit - permite validar o texto que esta sendo editado antes e depois da alteração do texto
  5. ColumnClick - permite ativar uma rotina quando a coluna é clicada.
  6. ItemCheck - permite determinar quando a alteração no estado de um item ocorreu.

Agora vamos ver um exemplo prático. Vou mostrar como criar via código um controle ListView com itens e sub-itens .

 -Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)

  1. Project Types : Visual Basic Projects
  2. Templates : Windows Application
  3. Name : ListView
  4. Location : c:\vbnet \Listview

- No formulário padrão - form1.vb - insira um botão de comando - Button1 .

- No evento Click do botão de comando - Button1 - insira o seguinte código abaixo que irá invocar a rotina cria_Listview()

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

   cria_Listview()

End Sub

 

- Agora crie um novo procedimento chamado cria_Listview com o código abaixo :
 

Private Sub cria_Listview()

  

   ' cria um controle listview

   Dim listView1 As New ListView()

   listView1.Bounds = New Rectangle(New Point(10, 10), New Size(300, 200))

 

   'define o modo de exibição do listview

   listView1.View = View.Details


   
' permite o usuario editar o item

   listView1.LabelEdit = True

 

  ' permite o usuario rearranjar as colunas

  listView1.AllowColumnReorder = True

 

  ' exibe as caixas de marcacao (check boxes.)

  listView1.CheckBoxes = True

 

  ' seleciona um item e subitem quando a seleção é feita

   listView1.FullRowSelect = True

 

  ' exibe as linhas

  listView1.GridLines = True

 

  ' ordena os itens na list na ordem ascendente

  listView1.Sorting = SortOrder.Ascending

 

   ' cria tres itens e tres conjuntos de subitems para cada item

   Dim item1 As New ListViewItem("item1", 0)

 

  ' marca o ckeckbox para o item

   item1.Checked = True

   item1.SubItems.Add("1")

   item1.SubItems.Add("2")

   item1.SubItems.Add("3")

 

  Dim item2 As New ListViewItem("item2", 1)

  item2.SubItems.Add("4")

  item2.SubItems.Add("5")

  item2.SubItems.Add("6")

 

   Dim item3 As New ListViewItem("item3", 2)

 

  ' marca o ckeckbox para o proximo item

  item3.Checked = True

  item3.SubItems.Add("7")

  item3.SubItems.Add("8")

  item3.SubItems.Add("9")

 

  ' Cria coluna para os itens e subitens

   listView1.Columns.Add("Coluna-Item", -2, HorizontalAlignment.Left)

   listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left)

   listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left)

   listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center)

  

    'inclui os itens no listview

   listView1.Items.AddRange(New ListViewItem() {item1, item2, item3})

 

   ' cria dois objetos Imagelist

    Dim imageListSmall As New ImageList()

    Dim imageListLarge As New ImageList()

 

   ' inicia o objeto com imagens

   imageListSmall.Images.Add(Bitmap.FromFile("C:\teste\figura1.bmp"))

   imageListSmall.Images.Add(Bitmap.FromFile("C:\teste\figura1.bmp"))

   imageListLarge.Images.Add(Bitmap.FromFile("C:\teste\figura1.bmp"))

   imageListLarge.Images.Add(Bitmap.FromFile("C:\teste\figura1.bmp"))

 

   ' atribui os objectos Imagelist ao listview

   listView1.LargeImageList = imageListLarge

   listView1.SmallImageList = imageListSmall

 

   ' inclui o Listive a coleção de controles

   Me.Controls.Add(listView1)

End Sub

 

Não vou detalhar mais pois o código esta comentado , mas note que neste exemplo eu estou usando também um controle ImageList para exibir uma figura .bmp criada por mim.

 

Ao executar o projeto veremos :

 

O formulário exibido na execução do projeto Após clicar no botão de comando criamos o Listview exibindo items e subitens

 

 

Podemos inclusive alterar a ordem das colunas apenas arrastando e soltando a coluna na nova posição desejada

 

Gostou ??


Aguarde , em breve mais artigos sobre o ListView no VB.NET/ADO.NET...

 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti