注册 登录
编程论坛 VB6论坛

listview上下移动数据

liqung 发布于 2017-05-27 18:24, 2033 次点击
各位朋友请问使用vb6 的listview控件显示从数据库中查询后的数据,如果希望把显示的数据的顺序进行上下位置的调换是否可以做到?
比如把显示的最后一条记录,调换到最上面,然后原来的第一条记录就变成了第二条了!

谢谢各位了
4 回复
#2
wlrjgzs2017-05-29 11:24
应该可以
#3
renxiaoyao362017-05-29 12:50
大致思路:
定义变量,将上下两个数据各自写入变量,清空原来的数据,然后插入变量中的数据,然后删除变量。完成
#4
xiangyue05102017-05-31 17:24
冒泡法总会吧,思路是一样的
#5
风吹过b2017-06-01 09:43
程序代码:
Private Sub Command1_Click(Index As Integer)
'移动选中条目位置,使用控件数组
'
0:第一条;1:向上一条;2:向下一条;3:最后一条

Dim vl1 As ListItem                                 '原始
Dim vl2 As ListItem                                 '新的
Dim i As Long

Set vl1 = ListView1.SelectedItem                    '当前已选择的

Select Case Index
Case 0                                              '到最顶端
    Set vl2 = ListView1.ListItems.Add(1)            '添加在最顶端
Case 1
    If vl1.Index > 1 Then                           '是否到顶
        Set vl2 = ListView1.ListItems.Add(vl1.Index - 1)    '添加在上一条
    Else
        Exit Sub
    End If
Case 2
    If vl1.Index < ListView1.ListItems.Count Then            '是否到底
        Set vl2 = ListView1.ListItems.Add(vl1.Index + 2)     '添加在下二条
    Else
        Exit Sub
    End If
Case 3
    Set vl2 = ListView1.ListItems.Add                               '添加在最后
Case Else               '其它按钮,统统忽略
    Exit Sub
End Select

vl2.Text = vl1.Text                         '第一列的文本
vl2.Icon = vl1.Icon                         'ICO属性
vl2.SmallIcon = vl1.SmallIcon
For i = 1 To ListView1.ColumnHeaders.Count - 1      '总数据个数
    vl2.SubItems(i) = vl1.SubItems(i)               '复制内容
Next i

ListView1.ListItems.Remove (vl1.Index)              '删原数据
Set ListView1.SelectedItem = vl2                    '选中它

Set vl1 = Nothing
Set vl2 = Nothing

End Sub
1