您的位置:首页 > 其它

单击ListView 列表头实现排序

2007-08-13 13:54 357 查看
单击ListView 列表头实现排序


ListView 控件有排序的功能!是一段代码实现排序的功能。并在列表头加上了排序的符号
代码如下:
Dim Li_i As Integer
Dim Li_Count As Integer
Dim li_len As Integer
Dim ls_num As String '总数量
Dim ls_amount As String '总金额
Dim ls_return As String '毛利

If lstmx.ListItems.Count = 0 Then Exit Sub ‘没有数据退出

'将合计列中的数据取出来
ls_num = lstmx.ListItems.Item(lstmx.ListItems.Count).SubItems(8)
ls_amount = lstmx.ListItems.Item(lstmx.ListItems.Count).SubItems(10)
ls_return = lstmx.ListItems.Item(lstmx.ListItems.Count).SubItems(11)

lstmx.ListItems.Remove lstmx.ListItems.Count '移出合计列。使合计列不参加排序

lstmx.Sorted = gs_bl_True'排序设为真

Li_Count = lstmx.ColumnHeaders.Count
For Li_i = 1 To Li_Count
li_len = InStr(Trim(lstmx.ColumnHeaders.Item(Li_i).Text), "△")
If li_len > 0 Then _
lstmx.ColumnHeaders.Item(Li_i).Text = _
Left(lstmx.ColumnHeaders.Item(Li_i).Text, li_len - 1)

li_len = InStr(Trim(lstmx.ColumnHeaders.Item(Li_i).Text), "▽")
If li_len > 0 Then _
lstmx.ColumnHeaders.Item(Li_i).Text = _
Left(lstmx.ColumnHeaders.Item(Li_i).Text, li_len - 1)

li_len = 0
Next

lstmx.SortKey = ColumnHeader.Index - 1
lstmx.SortOrder = Abs(Not lstmx.SortOrder = 1)

If lstmx.SortOrder = 0 Then '升序设为假
ColumnHeader.Text = ColumnHeader.Text & "△"
Else '降序
ColumnHeader.Text = ColumnHeader.Text & "▽"
End If

lstmx.Sorted = gs_bl_False '排序为假
Li_Count = lstmx.ListItems.Count
lstmx.ListItems.Add , , "合计:" '添加合计列
lstmx.ListItems.Item(Li_Count + 1).Bold = gs_bl_True
lstmx.ListItems.Item(Li_Count + 1).ForeColor = vbRed
lstmx.ListItems.Item(Li_Count + 1).SubItems(8) = ls_num
lstmx.ListItems.Item(Li_Count + 1).SubItems(10) = ls_amount
lstmx.ListItems.Item(Li_Count + 1).SubItems(11) = ls_return
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: