Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
If ColumnHeader.Index = 0 Then ' 如果是第一列
ListView1.Sorted = True
ListView1.SortKey = ColumnHeader.Index - 1
If ListView1.SortOrder = lvwAscending Then
ListView1.SortOrder = lvwDescending
Else
ListView1.SortOrder = lvwAscending
End If
End If
End Sub
上面是一段VB6 通过点击 ListView1的列表头排序的详细代码,网上的代码都是点击所有的列表头都生效,这里 给大家改进了,只点击 某一列的列表头进行操作
上面是一段默认的VB6排序操作, 下面在分享一套 土嘎嘎小编自己写的 排序函数
Private Sub SortListViewDescending() '将list里的值全部取出 然后在进行下面的排序
xdata = ""
For i = 1 To ListView1.ListItems.Count
xx2 = ListView1.ListItems(i).SubItems(2)
xx3 = ListView1.ListItems(i).SubItems(3)
xx4 = ListView1.ListItems(i).SubItems(4)
xx5 = ListView1.ListItems(i).SubItems(5)
If ListView1.ListItems(i).ForeColor = vbRed Then
xdata = xdata & vbCrLf & xx2 & "|@|" & xx3 & "|@|" & xx4 & "|@|" & xx5 & "|@|" & "红色"
ElseIf ListView1.ListItems(i).ForeColor = &H80000011 Then
xdata = xdata & vbCrLf & xx2 & "|@|" & xx3 & "|@|" & xx4 & "|@|" & xx5 & "|@|" & "灰色"
Else
xdata = xdata & vbCrLf & xx2 & "|@|" & xx3 & "|@|" & xx4 & "|@|" & xx5 & "|@|" & "正常"
End If
If ListView1.ListItems(i).Checked Then
xdata = xdata & "|@|" & "1"
Else
xdata = xdata & "|@|" & "0"
End If
xxx5 = ListView1.ListItems(i).SubItems(1)
If ListView1.ListItems(xxx5).ListSubItems.Item(1).ForeColor = &H80FF& Then
xdata = xdata & "|@|" & "1"
Else
xdata = xdata & "|@|" & "0"
End If
xxx5 = ListView1.ListItems(i).SubItems(1)
If ListView1.ListItems(xxx5).ListSubItems.Item(3).ForeColor = &HFF00FF Then
xdata = xdata & "|@|" & "1"
Else
xdata = xdata & "|@|" & "0"
End If
Next i
End Sub
Public Function SortLinesBynianfen(ByVal inputText As String) '排序函数
Dim lines() As String
Dim numbers() As Long
Dim i As Long, j As Long
Dim tempLine As String
Dim tempNum As Long
lines = Split(inputText, vbCrLf)
ReDim numbers(LBound(lines) To UBound(lines))
For i = LBound(lines) To UBound(lines)
numbers(i) = CLng(Val(lines(i))) '年份
Next i
For i = LBound(numbers) To UBound(numbers) - 1
For j = i + 1 To UBound(numbers)
If numbers(j) > numbers(i) Then
tempNum = numbers(i)
numbers(i) = numbers(j)
numbers(j) = tempNum
tempLine = lines(i)
lines(i) = lines(j)
lines(j) = tempLine
End If
Next j
Next i
SortLinesBynianfen = ""
For i = LBound(lines) To UBound(lines)
SortLinesBynianfen = SortLinesBynianfen & vbCrLf & lines(i)
Next i
SortLinesBynianfen = congshangwangxia(SortLinesBynianfen)
End Function
发挥自己的想想,想好步骤 就可以通过上面的代码进行各种 列的 排序功能