Кто-нибудь делал такое, чтобы можно было перетаскивать мышкой элементы TreeView от одного родителя к другому, ребенка делать родителем или наоборот. Или для этих целей лучше использовать не TreeView?
К сожалению, пока помочь ничем не могу. Если узнаешь как это сделать, плс., кинь мне на e-mail, Ok? До Drag'n Drop я еще не дошел. Да, конечно, это можно и нужно делать в TreeView. Мой любимый контрол. Я создаю, удаляю, переименовываю, меняю свойства узлов через правую кнопку PopupMenu, когда надо, в дополнительной форме. Не зная Drag'n Drop, я бы таким-же путем открывал бы доп. форму, в котором бы показывалось дерево без выбранного элемента и нужно бы было выбрать узел-получатель, степень родства (ребенок/соседний/родитель), способ взаимодействия (копировать/переместить). Уверен, что знай я как перетаскивать, все можно сделать проще и менее вычурнее
Случайно наткнулся на этот вопрос, решил помочь.
Вот код(lstSp - это TreeView):
Private Sub lstSp_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Not lstSp.HitTest(X, Y) Is Nothing Then lstSp.SelectedItem = lstSp.HitTest(X, Y)
End Sub
Private Sub lstSp_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton And Not lstSp.HitTest(X, Y) Is Nothing Then lstSp.Drag vbBeginDrag
End Sub
Private Sub lstSp_DragDrop(Source As Control, X As Single, Y As Single)
If lstSp.SelectedItem Is Nothing Then GoTo extS
If lstSp.DropHighlight Is Nothing Then GoTo extS
If lstSp.SelectedItem.Index = lstSp.DropHighlight.Index Then GoTo extS
'откуда брали, туда же и бросили
If lstSp.SelectedItem.Parent.FullPath = lstSp.DropHighlight.FullPath Then GoTo extS
If lstSp.SelectedItem.FullPath = StBar.Panels(2).ToolTipText Then StBar.Panels(2).ToolTipText = lstSp.DropHighlight.FullPath
Set lstSp.SelectedItem.Parent = lstSp.DropHighlight
lstSp.DropHighlight.Sorted = True 'это, если еще и отсортировать надо
extS:
Set lstSp.DropHighlight = Nothing
End Sub
Единственное, чего не хватает - блокировки перетаскивания нода на свою же дочку, но с этим, думаю, сам справишься...