基本代码是这样的: Dim xNow As ListItem Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Set xNow = ListView1.HitTest(x, y) ListView1.OLEDragMode = ccOLEDragAutomatic End SubPrivate Sub ListView1_OLECompleteDrag(Effect As Long) Dim x For i = 1 To ListView1.ListItems.Count If ListView1.ListItems.Item(i).Selected Then x = i End If Next i ListView1.ListItems.Remove x 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 x1 As ListItem
Set x1 = ListView1.ListItems.Add(, , Data.Files.Item(1)) End Sub
to TechnoFantasy(www.applevb.com): 谢谢你给我这段代码,我试了,有用,但有个问题,就是:你还没有拖出LISTVIEW框(稍微拖动一下)就删除了,我想我要的效果是要拖出了LISTVIEW框才删除。 可有什么解决方法呢?
Dim xNow As ListItem
Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Set xNow = ListView1.HitTest(x, y)
ListView1.OLEDragMode = ccOLEDragAutomatic
End SubPrivate Sub ListView1_OLECompleteDrag(Effect As Long)
Dim x
For i = 1 To ListView1.ListItems.Count
If ListView1.ListItems.Item(i).Selected Then
x = i
End If
Next i
ListView1.ListItems.Remove x
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 x1 As ListItem
Set x1 = ListView1.ListItems.Add(, , Data.Files.Item(1))
End Sub
谢谢你给我这段代码,我试了,有用,但有个问题,就是:你还没有拖出LISTVIEW框(稍微拖动一下)就删除了,我想我要的效果是要拖出了LISTVIEW框才删除。
可有什么解决方法呢?
在MouseDown事件中加入一个判断的代码。
MouseDown事件里如何判断呢?我想像资源管理器一样,如果是拖到桌面,就创建快捷方式,如果是拖到资源管理器的另外一处则复制一份。