Nicomendox Ответов: 1

Как я могу получить указатель пути дерева selectednode ?


В Проводнике прог. Treeview вот так :

Первый Привод:\
Папка А
Подпапке
Вложенную Папку Б
Вложенную Папку С

Папка B
Вложенную Папку А1
Папке А2
Вложенную Папку А3

Папка С
Вложенная А. А.
Папку ББ
Папке КС
Подпапки ДД

Папка Д
Вложенную папку АБ
Подпапки до н. э.
Папке компакт-диска
Подпапки де
Подпапки эф

КОЛИЧЕСТВО ИНДЕКСОВ:

Первый показатель-накопитель (0)

Индекс папки а равен (0)
Индекс подпапки A1 равен (0)
Индекс вложенную папку А2 (1)
Индекс вложенную папку А3 (2)

Показатель папку Б (1)
Индекс подпапки A1 равен (0)
Индекс вложенную папку А2 (1)
Индекс вложенную папку А3 (2)

Индекс папки C равен (2)
Индекс подпапки AA равен (0)
Индекс подпапки BB равен (1)
Индекс вложенную папку КС (2)
Индекс подпапки DD равен (3)

Индекс D папка (3)
Индекс подпапки AB равен (0)
Индекс подпапки BC равен (1)
Индекс CD папка (2)
Подпапка DE index is (3)
Индекс подпапки EF равен (4)


для примера

когда я выбираю папку C и подпапку DD, я хочу получить индексное дерево следующим образом : (0,2,3) (узел диска, узел папки, узел подпапки)
ОПЕРАЦИОННАЯ

когда я выбираю папку D и подпапку EF, я хочу получить индексное дерево следующим образом : (0,3,4) (узел диска, узел папки, узел подпапки)

Как я могу получить эту информацию ?

Что я уже пробовал:

<pre> Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
        MsgBox(TreeView1.SelectedNode.Parent.Index & "" & TreeView1.SelectedNode.NextNode.Index & "" & TreeView1.SelectedNode.NextNode.Index)

    End Sub


но не получить дисковый узел и не может получить узел, если есть еще подпапки...

CHill60

Почему вы смотрите на NextNode вместо SelectedNode?

1 Ответов

Рейтинг:
0

Richard Deeming

Как насчёт:

Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
    Dim path As New Stack(Of Integer)
    Dim node As TreeNode = TreeView1.SelectedNode
    While node IsNot Nothing
        path.Push(node.Index)
        node = node.Parent
    End While
    
    Dim nodePath As String = String.Join(",", path)
    MsgBox(nodePath)
End Sub


Maciej Los

Выглядит идеально для меня ;)