powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Drag&Drop в TreeView.
4 сообщений из 4, страница 1 из 1
Drag&Drop в TreeView.
    #33287661
Alex_Sandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угостите примерчиком - как переносить Nod'ы
по веткам?
...
Рейтинг: 0 / 0
Drag&Drop в TreeView.
    #33288070
Код: plaintext
Private tvw As TreeView

Код: plaintext
1.
2.
3.
4.
Private Sub TreeView1_OLEStartDrag(Data As Object, AllowedEffects As Long)
    Set tvw = Me.TreeView1.Object
    
    tvw.SelectedItem = Nothing
End Sub

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub TreeView1_OLEDragOver(Data As Object, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer)
    Set tvw = Me.TreeView1.Object
    
    If tvw.SelectedItem Is Nothing Then
        Set tvw.SelectedItem = tvw.HitTest(x, y)
    End If
    
    Set tvw.DropHighlight = tvw.HitTest(x, y)
End Sub

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
Private Sub TreeView1_OLEDragDrop(Data As Object, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
    On Error GoTo HandleErr
    
    Dim strKey As String
    Dim strText As String
    Dim nodNew As Node
    Dim nodDragged As Node
    
    Set tvw = Me.TreeView1.Object
    
    If tvw.SelectedItem Is Nothing Then
    Else
        Set nodDragged = tvw.SelectedItem
        If tvw.DropHighlight Is Nothing Then
            strKey = nodDragged.Key
            strText = nodDragged.Text

            tvw.Nodes.Remove nodDragged.Index
            Set nodNew = tvw.Nodes.Add(, , strKey, strText)
        ElseIf nodDragged.Index <> tvw.DropHighlight.Index Then
            Set nodDragged.Parent = tvw.DropHighlight
        End If
    End If
    
    Set nodDragged = Nothing
    Set tvw.DropHighlight = Nothing

ExitHere:
    Exit Sub
HandleErr:
    If Err.Number =  35614  Then
       MsgBox "A supervisor cannot report to a subordinate.", _
          vbCritical, "Move Cancelled"
    Else
       MsgBox "An error occurred while trying to move the node. " & _
       "Please try again." & vbCrLf & Error.Description
    End If
    Resume ExitHere
End Sub

Вот еще ссылка на пример.
...
Рейтинг: 0 / 0
Drag&Drop в TreeView.
    #33291533
Alex_Sandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое СПАСИБО!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Drag&Drop в TreeView.
    #34271913
Dick Johnson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно ли как-нибудь сделать перенос ветки вместе с детьми?
у меня многоуровневое дерево и драг-энд-дроп использую для перемещения веток внутри одного родителя.
Таким образом само-собой никакие дети не сохранятся

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
                    If tvw.DropHighlight.Parent.Key = nodDragged.Parent.Key Then
                        tvw.DropHighlight.Next = nodDragged
                        strKey = nodDragged.Key
                        strText = nodDragged.Text
                        strIcon = nodDragged.Image
                        tvw.Nodes.Remove nodDragged.Index
                        Set nodNew = tvw.Nodes.Add(tvw.DropHighlight, tvwNext, strKey, strText, strIcon)
                    Else
                        Exit Sub
                    End If

пробовал таким
Код: plaintext
1.
2.
3.
4.
5.
                    If tvw.DropHighlight.Parent.Key = nodDragged.Parent.Key Then
                        Set nodNew = tvw.Nodes.Add(tvw.DropHighlight, tvwNext) 
                        nodNew = nodDragged
                    Else
                        Exit Sub
                    End If
но тоже не вышло. присваивает только имя...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Drag&Drop в TreeView.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]