))
Это точно
именно этой фигней и занимались
))
а без помощи драги анд дропа...
ну ловишь нажатие клавишь, а дальше...
(у меня правда для этого кнопочки на форме.. наверное стоит клавой сдублировать... )
Проверки стоят на выделенный нод и на наличие предков ( мне надо было, чтобы начальные нодыникуда не перетакивались
- Код: Выделить всё
If Not (TV.SelectedItem Is Nothing) Then
If Not (TV.SelectedItem.Parent Is Nothing) Then
Set NNodest = TV.SelectedItem
Select Case Index
Case 0 'right
If Not (NNodest.Previous Is Nothing) Then
Set NNodest.Parent = NNodest.Previous
TV.DropHighlight = NNodest
TV.SelectedItem = NNodest
End If
Case 1 'left
If Not (NNodest.Parent.Parent Is Nothing) Then
Set NNodest.Parent = NNodest.Parent.Parent
TV.DropHighlight = NNodest
TV.SelectedItem = NNodest
End If
Case 2 'up
If Not (NNodest.Previous Is Nothing) Then
Set NNodeend = TV.Nodes.Add(NNodest.Previous.Index, tvwPrevious, , NNodest.text, 1, 1)
NNodeend.Tag = NNodest.Tag
Do While Not (NNodest.Child Is Nothing)
Set NNodest.Child.LastSibling.Parent = NNodeend
Loop
TV.Nodes.Remove NNodest.Index
TV.DropHighlight = NNodeend
TV.SelectedItem = NNodeend
End If
Case 3
If Not (NNodest.Next Is Nothing) Then
Set NNodeend = TV.Nodes.Add(NNodest.Next.Index, tvwNext, , NNodest.text, 1, 1)
NNodeend.Tag = NNodest.Tag
Do While Not (NNodest.Child Is Nothing)
Set NNodest.Child.LastSibling.Parent = NNodeend
Loop
TV.Nodes.Remove NNodest.Index
TV.DropHighlight = NNodeend
TV.SelectedItem = NNodeend
End If
End Select
End If
End If