OCULTAR COLUNAS DE UMA LISTVIEW
Galera, to com um problemão.
Procurei em toda parte, mas não achei o que preciso.
Tenho uma listview com varias colunas. E coloquei um menu para o cliente poder escolher quais colunas ele quer que apareça.
A unica solução que encontrei foi de reduzir o tamanho da coluna para 0. Mas não acho interessante já que se a pessoa quiser aumentar uma coluna, a zerada ira aparecer.
Precisava de um jeito de um jeito que ela ficasse oculta, se tivesse um [Ô]visible[Ô] nas propriedades, seria perfeito.
Alguém poderia me dar uma força?
Desde já agraço..
Procurei em toda parte, mas não achei o que preciso.
Tenho uma listview com varias colunas. E coloquei um menu para o cliente poder escolher quais colunas ele quer que apareça.
A unica solução que encontrei foi de reduzir o tamanho da coluna para 0. Mas não acho interessante já que se a pessoa quiser aumentar uma coluna, a zerada ira aparecer.
Precisava de um jeito de um jeito que ela ficasse oculta, se tivesse um [Ô]visible[Ô] nas propriedades, seria perfeito.
Alguém poderia me dar uma força?
Desde já agraço..
Cara,
Não sei como o teu programa funciona ou como você faz para retornar os dados que aparecem no ListView, mas eu fiz um exemplo que pode ser o que você quer (dá um pouco de trabalho mas até funciona):
1º - Para popular o ListView, eu criei um Vetor (Array) no escopo do código para ele ficar visÃvel em todo o editor:
2º - Aà eu populo o ListView no [txt-color=#0000f0]Load[/txt-color] do formulário (Repito que isto é no meu exemplo, não sei como você faz com o seu, nem sei quantas colunas seu ListView tem - o meu tem três colunas)
3º - Neste exemplo vou [Ô]ocultar[Ô] a segunda coluna quando clicar em um botão:
Na verdade eu a retirei do ListView
4º - Para exibi-la novamente, eu preciso limpar todo o ListView, inclusive as colunas, e repopula-lo novamente, colocando as colunas de volta, os items e, no final, auto dimensiono as colunas de acordo com o tamanho do texto:
Espero que ajude de alguma maneira.
Não sei como o teu programa funciona ou como você faz para retornar os dados que aparecem no ListView, mas eu fiz um exemplo que pode ser o que você quer (dá um pouco de trabalho mas até funciona):
1º - Para popular o ListView, eu criei um Vetor (Array) no escopo do código para ele ficar visÃvel em todo o editor:
Private Vetor(,) As String = {{[txt-color=#e80000][Ô]Linha 1[Ô][/txt-color], [txt-color=#e80000][Ô]Coluna 2[/txt-color][Ô], [txt-color=#e80000][Ô]Coluna 3[Ô][/txt-color]}, {[txt-color=#e80000][Ô]Linha 2[Ô][/txt-color], [txt-color=#e80000][Ô]Coluna 2[Ô][/txt-color], [txt-color=#e80000][Ô]Coluna 3[Ô][/txt-color]}}
2º - Aà eu populo o ListView no [txt-color=#0000f0]Load[/txt-color] do formulário (Repito que isto é no meu exemplo, não sei como você faz com o seu, nem sei quantas colunas seu ListView tem - o meu tem três colunas)
[txt-color=#0000f0]For[/txt-color] A = 0 [txt-color=#0000f0]To[/txt-color] Vetor.Lenght - 1
[txt-color=#0000f0]Try
Dim[/txt-color] Item [txt-color=#0000f0]As[/txt-color] ListViewItem = ListView1.Items.Add(Vetor(A, 0))
Item.SubItems.Add(Vetor(A, 1))
Item.SubItems.Add(Vetor(A, 2))
[txt-color=#0000f0]Catch[/txt-color] ex [txt-color=#0000f0]As[/txt-color] Exception
[txt-color=#0000f0]End Try
Next[/txt-color]
3º - Neste exemplo vou [Ô]ocultar[Ô] a segunda coluna quando clicar em um botão:
ListView1.Columns.Item(1).Dispose()
Na verdade eu a retirei do ListView
4º - Para exibi-la novamente, eu preciso limpar todo o ListView, inclusive as colunas, e repopula-lo novamente, colocando as colunas de volta, os items e, no final, auto dimensiono as colunas de acordo com o tamanho do texto:
ListView1.Items.Clear()
ListView1.Columns.Clear()
[txt-color=#0000f0]For[/txt-color] A = 0 [txt-color=#0000f0]To[/txt-color] 2
ListView1.Columns.Add([txt-color=#e80000][Ô]Coluna [Ô][/txt-color] & (A + 1))
Next
[txt-color=#0000f0]For[/txt-color] B = 0 [txt-color=#0000f0]To[/txt-color] Vetor.Length
[txt-color=#0000f0]Try[/txt-color]
[txt-color=#0000f0]Dim[/txt-color] Item [txt-color=#0000f0]As[/txt-color] ListViewItem = ListView1.Items.Add(Vetor(B, 0))
Item.SubItems.Add(Vetor(B, 1))
Item.SubItems.Add(Vetor(B, 2))
[txt-color=#0000f0]Catch[/txt-color] ex [txt-color=#0000f0]As[/txt-color] Exception
[txt-color=#0000f0]End Try
Next
For[/txt-color] C = 0 [txt-color=#0000f0]To[/txt-color] ListView1.Columns.Count - 1
ListView1.Columns.Item(C).AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent)
[txt-color=#0000f0]Next[/txt-color]
Espero que ajude de alguma maneira.
é basicamente isso mesmo cara.
No load, eu lanço os itens e subitens no listview a partir do banco de dados.
Tem 7 colunas fixas, mas que o usuário pode escolher quais ele quer que fique aparecendo.
Vou testar esse jeito que você disse, valeu mesmo cara.
No load, eu lanço os itens e subitens no listview a partir do banco de dados.
Tem 7 colunas fixas, mas que o usuário pode escolher quais ele quer que fique aparecendo.
Vou testar esse jeito que você disse, valeu mesmo cara.
Tópico encerrado , respostas não são mais permitidas