option explicit
private sub form_load()
treeview1.nodes.add , , "aa", "aa"
treeview1.nodes.add , , "bb", "bb"
listview1.listitems.add , , "cc"
listview1.listitems.add , , "dd"
listview1.oledragmode = ccoledragautomatic
listview1.labeledit = lvwmanual
end sub
private sub listview1_mousemove(button as integer, shift as integer, x as single, y as single)
if button = vbleftbutton then
listview1.dragicon = listview1.selecteditem.createdragimage
listview1.drag vbbegindrag
end if
end sub
private sub treeview1_dragdrop(source as control, x as single, y as single)
if not treeview1.drophighlight is nothing then
treeview1.nodes.add treeview1.drophighlight.key, tvwchild, getnextkey() & listview1.selecteditem.text, listview1.selecteditem.text
treeview1.drophighlight.expanded = true
end if
end sub
private sub treeview1_dragover(source as control, x as single, y as single, state as integer)
set treeview1.drophighlight = treeview1.hittest(x, y)
end sub
private function getnextkey() as string
dim snewkey as string
dim ihold as integer
dim i as integer
on error goto myerr
ihold = val(treeview1.nodes(1).key)
for i = 1 to treeview1.nodes.count
if val(treeview1.nodes(i).key) > ihold then
ihold = val(treeview1.nodes(i).key)
end if
next
ihold = ihold + 1
snewkey = cstr(ihold) & "_"
getnextkey = snewkey
exit function
myerr:
getnextkey = "1_"
end function