base usando o exemplo anterior , vamos ver como, visual basic. net , classificar os dados em listview por uma de suas colunas.
O projeto , antes de adicionar dois botões para selecionar qual é a ordem desejada. Como mostrado na figura abaixo:

Mais tarde no código mesma forma, vamos criar duas novas classes (OrdenarPorNombre e Ordem por tamanho), e os eventos dos botões lamber vamos definir o listview propriedade ListViewItemSorter com uma nova instância da classe correspondente à ordem selecionada. O código é curta, então não custa muita análise. Então eu deixo todo o código do formulário:
Imports System.IO Public Class Form1 Private Sub Form1_Load (ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load D Dim DirectoryInfo Novo ("C: \ Windows") ListView1.View = View.Details ListView1.FullRowSelect = True ListView1.BeginUpdate () ListView1.Items.Clear () Para cada f Como FileInfo Em d.GetFiles Item de Dim ListViewItem (f.Name) item.SubItems.Add (f.length) item.SubItems.Add (f.CreationTime) item.SubItems.Add (f.LastWriteTime) item.SubItems.Add (f.LastAccessTime) ListView1.Items.Add (item) Próximo ListView1.EndUpdate () End Sub Private Sub Button1_Click (ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click "Ordenar por nome ListView1.ListViewItemSorter = New ordenarPorNombre End Sub Private Sub Button2_Click (ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click "Ordenar por tamanho ListView1.ListViewItemSorter = New ordenarPorTamaño End Sub End Class Classe ordenarPorNombre Implementa IComparer
Função Pública Compare (ByVal x As Object, ByVal y As Object) _ As Integer Implements System.Collections.IComparer.Compare Dim item1 Como ListViewItem = CType (x, ListViewItem) Item2 Dim ListViewItem = CType (y, ListViewItem) Voltar String.Compare (item1.Text, item2.Text) End Function End Class
Classe ordenarPorTamaño Implementa IComparer Função Pública Compare (ByVal x As Object, ByVal y As Object) _ As Integer Implements System.Collections.IComparer.Compare Dim item1 Como ListViewItem = CType (x, ListViewItem) Item2 Dim ListViewItem = CType (y, ListViewItem) Math.Sign Return (CLng (item1.SubItems (1) Texto) -.. CLng (item2.SubItems (1) Texto)) End Function End Class
Como sempre, espero que o código vai ser útil.
Informações Bitacoras.com ...
Taxa em Bitacoras.com: usando como base o exemplo acima, vamos ver como, Visual Basic.NET classificar dados listview por qualquer de suas colunas.. O projeto anterior irá adicionar dois botões para selecionar qual é a ordem de .....
Ok, tudo bem, mas ... isso? Apenas por ordem crescente e ordenar cima e para baixo, dando um clique sobre o cabeçalho da coluna
Oi Laura:
Para ordenar por nome em ordem decrescente basta inverter as variáveis que são retornados na classe OrdenarPorNombre ... Você tem que mudar:
Voltar String.Compare (item1.Text, item2.Text)
para isso:
Voltar String.Compare (item2.Text, item1.Text)
e, no caso da ordem numérica deve inverter o sinal retornado pela caso ordenarPorTamaño, a alteração dessa:
Math.Sign Return (CLng (item1.SubItems (1) Texto) -.. CLng (item2.SubItems (1) Texto))
para isso:
Voltar Math.Sign () CLng (item1.SubItems (1) Texto.) - CLng (item2.SubItems. (1) Texto)) * -1)
e, finalmente, dizer-lhe que não a ordem dando Clique na coluna do listview comentar aqui porque eu quero dedicar um artigo separado.
Saudações, Eliseu
E como fazer a encomenda por qualquer campo em ordem decrescente de data Data Criado por exemplo.
Adicione a seguinte classe e atribuí-lo ao botão que você deseja.
Classe ordenarPorFechaCreacion
Implementa IComparer
Função Pública Compare (ByVal x As Object, ByVal y As Object) _
As Integer Implements System.Collections.IComparer.Compare
Dim item1 Como ListViewItem = CType (x, ListViewItem)
Item2 Dim ListViewItem = CType (y, ListViewItem)
Voltar Date.Compare (Date.parse (item1.SubItems (2). Text), Date.parse (item2.SubItems (2). Texto))
End Function
End Class
Olá pessoas.
em C #, como seria a sentença para o fim mesmo?
[...] [...]
dobry início
no caso, se eu tenho uma lista tão
23 = 5 +5 +13
5 = 1 +1 +1 +2
4 = 3 +1
etc .....
Eu posso fazer o que eu pedi-lo pelos números que se um resultado é que eu não 231 = 100 +100 31 colocá-lo depois do 23 = 5 +5 13
Boa tarde,
Desculpe o transtorno, mas vai saber como você pode classificar por duas colunas de uma só vez? algo como isto:
XYZ
aba -> 1
baa -> 2
de b -> 3
e à esquerda:
XYZ
de b -> 3
aba -> 1
baa -> 2
Super grata se você pudesse ajudar e se não, obrigado por postar a mesma informação que foi útil para mim também.
E se você quer namorar ..... que não são apenas por data da criação