VB.NET - O
Controle ListView revisitado
No mundo atual uma das características marcantes é o acesso a informação. Nunca houve tanta informação disponível para tantos. Você nem precisa sair de casa para ter acesso a toneladas de informações sobre um determinado assunto. Basta Clicar.
O efeito colateral de tamanha quantidade de informação é um paradoxo: O que fazer com tanta informação ? Como tratá-la , como organizá-la, como digerí-la...?
Como base nisto o homem tem criado diversas ferramentas para poder processar a informação. Acredite se quiser. mas o controle ListView é um destes recursos criados com o objetivo de organizar a informação no formato de um a lista.
Uma lista é algo linear sem ramificações ou níveis. Uma lista pode conter todos os objetos em um grupo ou sub-grupo ordenados segundo um critério. Pode usar também uma organização hierárquica do tipo pai/filho onde cada objeto ocupa um nível específico nesta hierarquia e cada objeto pode ter um objeto pai, um objeto filho , nenhum ou ambos.
Um controle ListView exibe uma lista de itens com ícones opcionais e subitens associados com cada um. Como exemplo clássico temos o Windows Explorer que usa este tipo de recurso para organizar informação sobre arquivos, onde o ListView ocuparia o lado direito da janela e exibiria os arquivos e diretórios contidos no interior de cada diretório atual selecionado selecionado na visão de árvore do lado esquerdo da janela.
![]() |
O controle ListView contém uma coleção de objetos do tipo ListViewItem : A propriedade Items.
A propriedade Items é do tipo ListViewItemCollection, que possui métodos para incluir, inserir, remover e outras manipulações de itens na coleção.
A classe ListViewItemCollection implementa a interface ICollection , a interface IList que deriva dela , e a interface IEnumerable.
As primeiras duas interfaces fornecem acesso a items individuais via índice (o primeiro tem o valor igual a 0), a última fornece a capacidade de interagir sobre a coleção. Estas características são o cerne do controle ListView.
A exibição do controle ListView pode ser feita de 4 formas distintas definidas pela propriedade View do controle, são elas :
large icon
small icon
list
detail
Quando a propriedade View é definida para SmallIcon ou List, a imagem exibida com cada item é obtida de um controle ImageList definido pela propriedade SmallImageList.
Quando a propriedade View é definida para LargeIcon as imagens são obtidas de um ImageList definido pela propriedade LargeImageList.
A imagem padrão para um ImageList é small Images exibidas com 16 x 16 pixels. Imagens maiores são exibidas a partir de 32 x 32.
A seguir temos as principais propriedades do controle ListView :
Propriedade |
Valor |
Descrição |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Activation |
ItemActivation |
Read/write. Define como o usuário ativa um item. Os valores válidos estão contidos na enumeração a seguir:
|
||||||||||
Alignment |
ListViewAlignment |
Read/write. Define o alinhamento dos itens na lista. Valores Válidos:
|
||||||||||
AllowColumnReorder |
Boolean |
Read/write. Se false (o padrão),o re-ordenamento drag-and-drop da coluna em tempo de execução não é permitido. |
||||||||||
AutoArrange |
Boolean |
Read/write. Se true (o padrão), os ícones são automaticamente arrumados e ajustados ao grid. |
||||||||||
BorderStyle |
BorderStyle |
Read/write. Define o estilo de borda do controle. O padrão BorderStyle.Fixed3D. |
||||||||||
CheckBoxes |
Boolean |
Read/write. Se true, um checkbox aparece perto do próximo item. |
||||||||||
CheckedIndices |
ListView.CheckedIndexCollection |
Read-only. Coleção de indices dos itens atualmente marcados. |
||||||||||
CheckedItems |
ListView.CheckedListViewItemCollection |
Read-only. Coleção dos itens atualmente marcados. |
||||||||||
Columns |
ListView.ColumnHeaderCollection |
Read-only. Coleção de objetos ColumnHeader objects, cada um representa a coluna do cabeçalho quando a propriedade View é definida como Details. |
||||||||||
FocusedItem |
ListViewItem |
Read-only. O item que atualmente possui o foco. |
||||||||||
ForeColor |
Color |
Read/write. Cor de fundo do controle. |
||||||||||
FullRowSelect |
Boolean |
Read/write. Se true, clicando em um item seleciona todos os seus subitens. |
||||||||||
GridLines |
Boolean |
Read/write. Se true, as linhas da grade são exibidas contornando itens e sub-itens. O padrão é false. |
||||||||||
Items |
ListView.ListViewItemCollection |
Read-only. A coleção de itens no controle. |
||||||||||
LabelEdit |
Boolean |
Read/write. Se true, usuário pode editar a etiqueta do item.O padrão é false. |
||||||||||
LargeImageList |
ImageList |
Read/write. A ImageList usada quando a propriedade View é definida para View.LargeIcon. |
||||||||||
ListViewItemSorter |
IComparer |
Read/write. O objeto IComparer usado para realizar ordenamento de items. |
||||||||||
MultiSelect |
Boolean |
Read/write. Se true (o padrão), podemos selecionar múltiplos items. |
||||||||||
Scrollable |
Boolean |
Read/write. Se true (o padrão), scrollbars são incluídas no controle qdo necessário. |
||||||||||
SelectedIndices |
ListView.SelectedIndexCollection |
Read-only. Uma coleção de índices para os items selecionados. |
||||||||||
SelectedItems |
ListView.SelectedListViewItemCollection |
Read-only. Uma coleção de itens selecionados. |
||||||||||
SmallImageList |
ImageList |
Read/write. A ImageList usada quando a propriedade View é definida para View.SmallIcon. |
||||||||||
Sorting |
SortOrder |
Read/write. O tipo de ordenamento dos itens. Valores válidos: Ascending, Descending, ou None (o padrão). |
||||||||||
Text |
String |
Read/write. O texto exibido com um item no controle. |
||||||||||
TopItem |
ListViewItem |
Read-only. O primeiro item visível no controle. |
||||||||||
View |
View |
Read/write. Define como os itens são exibidos no controle. |
a Seguir os principais eventos do controle ListView:
Evento |
Descrição |
---|---|
ColumnClick |
Disparado quando o usuário clica na coluna Header e a propriedade View esta definida como View.Details. |
AfterLabelEdit |
Disparado depois da etiqueta do ListViewItem ter sido editada. |
BeforeLabelEdit |
Disparado antes da etiqueta do ListViewItem estiver sendo editada. |
ItemActivate |
Disparada quando um item é ativado. |
ItemCheck |
Disparado quando o estado check de um item é alterado. |
ItemDrag |
Disparado quando o usuário inicia a seleção e o arraste de um item. |
SelectedIndexChanged |
Se a propriedade MultiSelect for igual a false, este evento é disparado quando existe uma alteração no indice de um item selecionado. Se a propriedade for true o evento é disparado quando um item for selecionado ou deselecionado. |
Nota: Cuidado com o evento SelectedIndexChanged. Ele pode ser disparado duas vezes ao se selecionar um item: a primeira vez quando o item é deselecionado e quando o nova seleção é realizada. Para evitar este evento indesejável, verifique a propriedade SelectedIndices.Count do ListView no tratamento do evento e efetue o processamento desejado somente quando o valor retornado for diferente de zero. Com isto não haverá o processamento quando o item for deselecionado. Exemplo:
Private Sub listView1_SelectedIndexChanged(ByVal
sender As Object, ByVal e As EventArgs) If listView1.SelectedIndices.Count <> 0 Then 'efetua o processamento End If End Sub |
Outra nota importante é que se a propriedade CheckBoxes for definida como true, múltiplos itens podem ser selecionados mesmo se a propriedade MutiSelect estiver definida como False.
A seguir os principais métodos do Controle ListView:
Método |
Descrição |
---|---|
ArrangeIcons |
Arrumam os ícones usando o alinhamento padrão ou um definido pelo usuário. |
BeginUpdate |
Previne o controle de ser redesenhado até que o método EndUpDate seja chamado. Isto aumenta o desempenho e previne o efeito piscante quando se inclui muitos itens usando o método Add. |
Clear |
Remove todos os itens e colunas do controle |
EnsureVisible |
Certifica que um item com um índice definido esta visível no controle. |
EndUpdate |
Permite ao controle ser redesenhado depois do método BeginUpdate tiver sido chamado. |
EnsureVisible |
Torna possível que um item com indice (0) seja visível. |
GetItemAt |
Obtêm o item em um ponto especificado pelas coordenadas x e y. |
Sort |
Ordena os itens usando o IComparer definido na propriedade ListViewItemSorter. |
Já mostrei a utilização do controle ListView no VB.NET nos seguintes artigos:
Já falei tanto que até estou sem assunto !!!
Amanha eu coloco um exemplo , OK !!!
Exemplo de utilização de ListView (mais um...) Clique no link abaixo para ver o exemplo:(Resolvi colocar o exemplo em outra página para ficar mais fácil localizar o assunto.)
Exemplo : Usando ListView para exibir dados selecionados em duas Combobox sincronizadas
Até o próximo artigo ...
José Carlos Macoratti