Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: перетаскивание элементов TreeView Добавлено: 10.04.03 08:53  

Автор вопроса:  eVGENY106
Кто-нибудь делал такое, чтобы можно было перетаскивать мышкой элементы
TreeView от одного родителя к другому, ребенка делать родителем или
наоборот. Или для этих целей лучше использовать не TreeView?

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 10.04.03 15:03
К сожалению, пока помочь ничем не могу. Если узнаешь как это сделать, плс., кинь мне на e-mail, Ok? До Drag'n Drop я еще не дошел. Да, конечно, это можно и нужно делать в TreeView. Мой любимый контрол. Я создаю, удаляю, переименовываю, меняю свойства узлов через правую кнопку PopupMenu, когда надо, в дополнительной форме. Не зная Drag'n Drop, я бы таким-же путем открывал бы доп. форму, в котором бы показывалось дерево без выбранного элемента и нужно бы было выбрать узел-получатель, степень родства (ребенок/соседний/родитель), способ взаимодействия (копировать/переместить). Уверен, что знай я как перетаскивать, все можно сделать проще и менее вычурнее =)

Ответить

Номер ответа: 2
Автор ответа:
 Calhoon



ICQ: 789764 

Вопросов: 90
Ответов: 230
 Web-сайт: 4elovekssn.blog.ru
 Профиль | | #2
Добавлено: 02.09.04 04:30
Случайно наткнулся на этот вопрос, решил помочь.
Вот код(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


Единственное, чего не хватает - блокировки перетаскивания нода на свою же дочку, но с этим, думаю, сам справишься...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам