vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v2.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | vb@rchiv CD Vol.5  | Shop Copyright ©2000-2009
 
zurück
Knüller: vb@rchiv CD Vol.4
Knüller: vb@rchiv Offline-Reader - Die Offline-Wissensdatenbank

vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4
 
Tools & Components Anzeigen 
 
Unser Tipp: Alle Online-Forenbeiträge aus dem vb@rchiv - gesammelt in einer Offline-Wissendatenbank, mit Internet-Update-Funktion, u.v.m.

 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 sortieren487Dragon.Net11.07.04 16:15
Re: Listview-Spalten sortieren1.377Gudi12.07.04 07:54
Re: Listview-Spalten sortieren549Dragon.Net12.07.04 08:32
Re: Listview-Spalten sortieren276thE_iNviNciblE21.11.07 00:46
Re: Listview-Spalten sortieren363Melkor21.11.07 13:04
Re: Listview-Spalten sortieren247thE_iNviNciblE21.11.07 21:09
Re: Listview-Spalten sortieren236Melkor21.11.07 21:27
Re: Listview-Spalten sortieren240thE_iNviNciblE21.11.07 21:36
Re: Listview-Spalten sortieren115Sword27.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-2009 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