Tools Links Login

Sorting by columnheaders in listviews

This allows a user to sort the contents of a listview by clicking on a column header in report-mode. Clicking again will sort descending.

Original Author: Adam Hansen

Assumptions

This assumes that a ListView named 'ListView1' exists on a form, and that code exists to put values into it. Also, the ListView style-property must be 'report'.
Paste the code into the 'General Declarations' area of your form (below any other global declarations you may have) and substitute 'ListView1' with the name of your listview.

Code

Dim iCol As Integer
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As_ MSComctlLib.ColumnHeader)
  
  ' When a ColumnHeader object is clicked, the ListView control is
  ' sorted by the subitems of that column.
  ' Set the SortKey to the Index of the ColumnHeader - 1
  
  If ColumnHeader.Index - 1 <> iCol Then
    ListView1.SortOrder = 0
  Else
    ListView1.SortOrder = Abs(ListView1.SortOrder - 1)
  End If
  
  ListView1.SortKey = ColumnHeader.Index - 1
  
  ' Set Sorted to True to sort the list.
  
  ListView1.Sorted = True
  iCol = ColumnHeader.Index - 1
End Sub

About this post

Posted: 2002-06-01
By: ArchiveBot
Viewed: 90 times

Categories

Visual Basic 6

Attachments

No attachments for this post


Loading Comments ...

Comments

No comments have been added for this post.

You must be logged in to make a comment.