LISTVIEW DUVIDAS

USUARIO.EXCLUIDOS 11/04/2007 09:19:23
#211161


Fala Galera

Estou com algumas dúvidas sobre o Objeto ListView..se alguém puder me ajudar, ficarei muito grato:

1 - Como dimensionar a largura das colunas (em Projeto e Execução)
2 - Como fazer pra ele enteder valores como numéricos para organizar os itens de maneira correta (1, 2, 3,..8, 9, 10, 11 e não 1, 10, 11, 12, 2, 3, 4...)
3 - Como fazer com que ao clicar numa linha, ele pegar o valor da primeira coluna
4 - Porque fica sempre uma última coluna do lado direito vazia? tem como apagá-la?

Podem ser simples, algumas que eu tinha já achei no site, outras eu achei mas n funcionam sei lá.

Grato a todos
WEBMASTER 11/04/2007 13:02:41
#211238
Muitas dessas duvidas ja estao aqui no site em forma de dicas.
Quanto a ultima coluna voce ter colocado uma coluna a mais somente isso.

Existem mais de 50 exemplos relativos a listview, consulte-os aqui:
listview
SVS99 12/04/2007 08:58:50
#211420
Resposta escolhida
Ola

Eu tambem tive esse problema mas felizmente a ajuda de um outro amigo, consegui resolve-lo.

Na declaracao dos campos do ListView, voce deve criar um campo extra para os campos numericos e campos data e esse campo extra devera ficar invisivel.

lvwFaturas.ColumnHeaders.Add , , "ID", 0
lvwFaturas.ColumnHeaders.Add , , "Emissão", 1500
lvwFaturas.ColumnHeaders.Add , , "Emissão", 0
lvwFaturas.ColumnHeaders.Add , , "Valor", 1800
lvwFaturas.ColumnHeaders.Add , , "Valor", 0

Na verdade serao esses camspos que ficarao invisiveis que serao ordenados e depois substituidos pelos respectivos campos que estao visiveis.No Exexplo acima os campos de "Emissao e Valor"

E presiso fazer o peque acerto abaixo para os campos numericos e campos data.No campo visivel voce informa os dados normalmente e nos que ficarao invisiveis faz os acertos abaixo.

NewItem.SubItems(1) = Format(rscmdAux!FAT_EMISSAO, "DD/MM/YYYY")
NewItem.SubItems(2) = Format(rscmdAux!FAT_EMISSAO, "YYYYMMDD")

NewItem.SubItems(3) = Format(rscmdAux!FAT_VALOR)
NewItem.SubItems(4) = Format(CDbl("0" & rscmdAux!FAT_VALOR * 100), "000000000000000")


Agora e preciso ordenar os campos, fazendo com que os campos que estao invisiveis sejam ordenados no lugar dos campos que sao exibidos.E uma simples substituicao.Isso ocorre apenas para efeito se visualizacao.

lvwFaturas = Nome do meu ListView

 Private Sub lvwFaturas_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
If ColumnHeader = lvwFaturas.ColumnHeaders(1).Text Then
OrdenaLvw lvwFaturas, lvwFaturas.ColumnHeaders(2)
ElseIf ColumnHeader = lvwFaturas.ColumnHeaders(3).Text Then
OrdenaLvw lvwFaturas, lvwFaturas.ColumnHeaders(4)
Else
OrdenaLvw lvwFaturas, ColumnHeader
End If
End Sub


Se eu clicar na coluna 1 entao ordeno pelo conteudo da coluna 2 e assim por diante.

Espero ter ajudado

Um Abraço.


Tópico encerrado , respostas não são mais permitidas