vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Listview-Spalten sortieren 
Autor: Melkor
Datum: 21.11.07 13:04

Ich mag da eine generische Klasse benutzen (weil sichergestellt wird, dass die Items sortierbar sind, unter anderem).
    Private col As Integer
 
    Private Sub ListView1_ColumnClick(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.ColumnClickEventArgs) Handles ListView1.ColumnClick
        If col = e.Column Then
            If ListView1.Sorting = SortOrder.Descending Then
                ListView1.Sorting = SortOrder.Ascending
            Else
                ListView1.Sorting = SortOrder.Descending
            End If
        Else
            ListView1.Sorting = SortOrder.Ascending
        End If
        col = e.Column
        Select Case col
            Case 0
                ListView1.ListViewItemSorter = New lvsorter(Of String)(e.Column)
            Case 1
                ListView1.ListViewItemSorter = New lvsorter(Of Integer)( _
                  e.Column)
            Case 2
                ListView1.ListViewItemSorter = New lvsorter(Of Double)(e.Column)
            Case 3
                ListView1.ListViewItemSorter = New lvsorter(Of Integer)( _
                  e.Column)
        End Select
    End Sub
 
    Private Class lvsorter(Of T As IComparable)
        Implements IComparer
 
        Private column As Integer
        Private tc As System.ComponentModel.TypeConverter
 
        Public Sub New(ByVal column As Integer)
            Me.column = column
            tc = System.ComponentModel.TypeDescriptor.GetConverter(GetType(T))
        End Sub
 
        Public Function Compare(ByVal x As Object, ByVal y As Object) As _
          Integer Implements System.Collections.IComparer.Compare
            Dim lvi1 As ListViewItem = CType(x, ListViewItem)
            Dim lvi2 As ListViewItem = CType(y, ListViewItem)
            Dim arg1 As T = tc.ConvertFromString(lvi1.SubItems(column).Text)
            Dim arg2 As T = tc.ConvertFromString(lvi2.SubItems(column).Text)
            If lvi1.ListView.Sorting = SortOrder.Ascending Then
                Return arg1.CompareTo(arg2)
            Else
                Return -arg1.CompareTo(arg2)
            End If
        End Function
 
    End Class
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
 
        ' Create columns for the items and subitems.
        ListView1.Columns.Add("Item", -2, HorizontalAlignment.Left)
        ListView1.Columns.Add("Col2", -2, HorizontalAlignment.Right)
        ListView1.Columns.Add("Col3", -2, HorizontalAlignment.Right)
        ListView1.Columns.Add("Col4", -2, HorizontalAlignment.Right)
 
        ' Create three items and three sets of subitems for each item.
        Dim item1 As New ListViewItem("item3", 0)
        item1.SubItems.Add("444")
        item1.SubItems.Add("2.4")
        item1.SubItems.Add("10")
 
        Dim item2 As New ListViewItem("item7", 1)
        item2.SubItems.Add("9")
        item2.SubItems.Add("9.99")
        item2.SubItems.Add("100")
 
        Dim item3 As New ListViewItem("item1", 0)
        item3.SubItems.Add("103")
        item3.SubItems.Add("9.91")
        item3.SubItems.Add("3")
 
        'Add the items to the ListView.
        ListView1.Items.AddRange(New ListViewItem() {item1, item2, item3})
 
    End Sub

Those people who think they know everything are a great annoyance to those of us who do - Isaac Asimov

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Listview-Spalten sortieren3.905Dragon.Net11.07.04 16:15
Re: Listview-Spalten sortieren6.475Gudi12.07.04 07:54
Re: Listview-Spalten sortieren3.290Dragon.Net12.07.04 08:32
Re: Listview-Spalten sortieren2.937thE_iNviNciblE21.11.07 00:46
Re: Listview-Spalten sortieren4.712Melkor21.11.07 13:04
Re: Listview-Spalten sortieren2.889thE_iNviNciblE21.11.07 21:09
Re: Listview-Spalten sortieren2.803Melkor21.11.07 21:27
Re: Listview-Spalten sortieren2.771thE_iNviNciblE21.11.07 21:36
Re: Listview-Spalten sortieren2.704Sword27.08.08 19:38

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel