[转] 实现listview控件report视图下任何列头的双向排序
Option Explicit
Private Sub Form_Load()
Dim i As Integer
Dim itemx As ListItem
ListView1.View = lvwReport
With ListView1.ColumnHeaders
.Add , , "编号", 600, lvwColumnLeft
For i = 1 To 2
.Add , , "内容项" & i, 1000, lvwColumnRight
Next
End With
With ListView1.ListItems
For i = 1 To 10
Set itemx = .Add
itemx.SubItems(1) = i
itemx.SubItems(2) = Chr(64 + i)
Next
End With
End Sub
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
With ListView1
If (ColumnHeader.Index - 1) = .SortKey Then
.SortOrder = (.SortOrder + 1) Mod 2
Else
.Sorted = False
.SortOrder = 0
.SortKey = ColumnHeader.Index - 1
.Sorted = True
End If
End With
End Sub
Private Sub Form_Load()
Dim i As Integer
Dim itemx As ListItem
ListView1.View = lvwReport
With ListView1.ColumnHeaders
.Add , , "编号", 600, lvwColumnLeft
For i = 1 To 2
.Add , , "内容项" & i, 1000, lvwColumnRight
Next
End With
With ListView1.ListItems
For i = 1 To 10
Set itemx = .Add
itemx.SubItems(1) = i
itemx.SubItems(2) = Chr(64 + i)
Next
End With
End Sub
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
With ListView1
If (ColumnHeader.Index - 1) = .SortKey Then
.SortOrder = (.SortOrder + 1) Mod 2
Else
.Sorted = False
.SortOrder = 0
.SortKey = ColumnHeader.Index - 1
.Sorted = True
End If
End With
End Sub