PROBLEMA NA ORDENACAO DE LISTBOX
Pessoal, to usando estes métodos para ordenar um listbox:
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim Item1 As ListViewItem = x
Dim Item2 As ListViewItem = y
If lstBuscar.Sorting = System.Windows.Forms.SortOrder.Ascending Then
Return Item1.SubItems(colunaParaOrdenar).Text.CompareTo(Item2.SubItems(colunaParaOrdenar).Text)
Else
Return Item2.SubItems(colunaParaOrdenar).Text.CompareTo(Item1.SubItems(colunaParaOrdenar).Text)
End If
End Function
Private Sub ListView1_ColumnClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles lstBuscar.ColumnClick
[ô]ORDENA COLUNA DE IDPEDIDO
If colunaParaOrdenar <> e.Column Then
lstBuscar.Sorting = System.Windows.Forms.SortOrder.Ascending
colunaParaOrdenar = e.Column
Else
lstBuscar.Sorting = IIf(lstBuscar.Sorting = System.Windows.Forms.SortOrder.Ascending, System.Windows.Forms.SortOrder.Descending, System.Windows.Forms.SortOrder.Ascending)
End If
lstBuscar.Sort()
End Sub
porém, quando eu tenho 15 registros, por exemplo, na listbox, ele me ordena assim:
1 10 11 12 13 14 15 2 3 4 5 6 7 8 9
alguem sabe alguma forma de ficar assim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ??
vlw pessoal !!
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim Item1 As ListViewItem = x
Dim Item2 As ListViewItem = y
If lstBuscar.Sorting = System.Windows.Forms.SortOrder.Ascending Then
Return Item1.SubItems(colunaParaOrdenar).Text.CompareTo(Item2.SubItems(colunaParaOrdenar).Text)
Else
Return Item2.SubItems(colunaParaOrdenar).Text.CompareTo(Item1.SubItems(colunaParaOrdenar).Text)
End If
End Function
Private Sub ListView1_ColumnClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles lstBuscar.ColumnClick
[ô]ORDENA COLUNA DE IDPEDIDO
If colunaParaOrdenar <> e.Column Then
lstBuscar.Sorting = System.Windows.Forms.SortOrder.Ascending
colunaParaOrdenar = e.Column
Else
lstBuscar.Sorting = IIf(lstBuscar.Sorting = System.Windows.Forms.SortOrder.Ascending, System.Windows.Forms.SortOrder.Descending, System.Windows.Forms.SortOrder.Ascending)
End If
lstBuscar.Sort()
End Sub
porém, quando eu tenho 15 registros, por exemplo, na listbox, ele me ordena assim:
1 10 11 12 13 14 15 2 3 4 5 6 7 8 9
alguem sabe alguma forma de ficar assim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ??
vlw pessoal !!
Veja se essa dica te ajuda.
http://goo.gl/83Fsh
http://goo.gl/83Fsh
desculpa cara, nao é um listbox, é uma listVIEW... errei, desculpa... nem ajudou esse exemplo
Pega este código aà e adpta no seu.
Minha ListView as com o nome de ListView1, se o nome do seu não for este mude o nome no meu código.
Pode ser que tenha algum outro jeito mais fácil de fazer isto, mas este foi o único até agora que eu consegui criar.
espero ter ajudado.
Minha ListView as com o nome de ListView1, se o nome do seu não for este mude o nome no meu código.
Pode ser que tenha algum outro jeito mais fácil de fazer isto, mas este foi o único até agora que eu consegui criar.
espero ter ajudado.
Tópico encerrado , respostas não são mais permitidas