我想用鼠标按住某一行,进行拖动到想要的位置,例如:按住第一行,拖动到第三行的位置!!!   
就用鼠标调整行。

解决方案 »

  1.   

    看看这个例子Option Explicit
    Private DragLV As ListItem
    Private Sub Form_Load()
    ListView1.OLEDragMode = ccOLEDragAutomatic
    ListView1.OLEDropMode = ccOLEDropManual
    Dim lst As ListItem
    Set lst = ListView1.ListItems.Add(1, "a1", "x")
    lst.SubItems(1) = "aaa"
    lst.SubItems(2) = "bbb"
    lst.SubItems(3) = "bbc"
    lst.SubItems(4) = "bbd"
    Set lst = ListView1.ListItems.Add(2, "a2", "y")
    lst.SubItems(1) = "bba"
    lst.SubItems(2) = "bbc"
    lst.SubItems(3) = "bbd"
    lst.SubItems(4) = "bbe"
    Set lst = ListView1.ListItems.Add(3, "a3", "z")
    lst.SubItems(1) = "bbc"
    lst.SubItems(2) = "bbe"
    lst.SubItems(3) = "bbf"
    lst.SubItems(4) = "bbg"
    End SubPrivate Sub ListView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
        Dim hitlv As ListItem
        Dim newLv As ListItem
        Set hitlv = ListView1.HitTest(x, y)
        
        If Not hitlv Is Nothing Then
            If hitlv.Index <> DragLV.Index Then
                Set newLv = ListView1.ListItems.Add(hitlv.Index, , DragLV.Text)
                newLv.SubItems(1) = DragLV.SubItems(1)
                newLv.SubItems(2) = DragLV.SubItems(2)
                newLv.SubItems(3) = DragLV.SubItems(3)
                newLv.SubItems(4) = DragLV.SubItems(4)
                newLv.Selected = True
                ListView1.ListItems.Remove DragLV.Index
            End If
        Else
            Set newLv = ListView1.ListItems.Add(, , DragLV.Text)
            newLv.SubItems(1) = DragLV.SubItems(1)
            newLv.SubItems(2) = DragLV.SubItems(2)
            newLv.SubItems(3) = DragLV.SubItems(3)
            newLv.SubItems(4) = DragLV.SubItems(4)
            newLv.Selected = True
            ListView1.ListItems.Remove DragLV.Index
        End If
    End SubPrivate Sub ListView1_OLEStartDrag(Data As MSComctlLib.DataObject, AllowedEffects As Long)
        Set DragLV = ListView1.SelectedItem
    End Sub
      

  2.   

    补充一个C#的:
    http://blog.bossma.cn/winform/draglistview-implement-drag-rows-in-listview/完整例子,移动ListViewItem,拖动的时候还会出现一个位置线。