Как обратиться к любой ноде в TreeView

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
HBasic
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 01.03.2009 (Вс) 21:53

Как обратиться к любой ноде в TreeView

Сообщение HBasic » 12.03.2009 (Чт) 19:42

У меня есть многоуровневое TreeView с множеством узлов и нодов
1)Как обратиться к конкретному узлу
2)Как обратиться к конкретному потомку в этом узле.
3)Как подсчитать количество детей у конкретного родителя.

При помощи TreeView.Nodes.Count получаю только количество корневых нодов.При помощи
TreeView.При помощи Nodes.Child.Child и так далее Child и Nodes.Child.Child
и так далее Child Child.Next могу обращаться только к первому и второму потомку.А мне надо
к любому.Расскажите, пожалуйста, как надо.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как обратиться к любой ноде в TreeView

Сообщение Хакер » 12.03.2009 (Чт) 21:56

Расскажи сначала, какой тривью. Есть самозванец, с кучей свойств, есть обёртка над оригинальным TreeView с меньшим количеством.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как обратиться к любой ноде в TreeView

Сообщение alibek » 13.03.2009 (Пт) 0:03

HBasic, считай на текущем уровне, если есть потомки, то для каждого рекурсивно вызывай эту же функцию.
Lasciate ogni speranza, voi ch'entrate.

HBasic
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 01.03.2009 (Вс) 21:53

Re: Как обратиться к любой ноде в TreeView

Сообщение HBasic » 13.03.2009 (Пт) 6:40

Хакер писал(а):Расскажи сначала, какой тривью. Есть самозванец, с кучей свойств, есть обёртка над оригинальным TreeView с меньшим количеством.

TreeView из стандартной библиотеки.

HBasic
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 01.03.2009 (Вс) 21:53

Re: Как обратиться к любой ноде в TreeView

Сообщение HBasic » 13.03.2009 (Пт) 6:41

alibek писал(а):HBasic, считай на текущем уровне, если есть потомки, то для каждого рекурсивно вызывай эту же функцию.

А кусочек кода не приведете?
Мне нужно обойти все злоровенное дерево с кучей уровней и потомков на каждом уровне.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как обратиться к любой ноде в TreeView

Сообщение alibek » 13.03.2009 (Пт) 8:58

Как-то так.
Код: Выделить всё
Function CountNodes(Parent As Node) As Long
  Dim Node As Node, Count As Long
  Set Node = Parent.Child
  Do Until Node Is Nothing
    Count = Count + 1
    If Node.Children > 0 Then Count = Count + CountNodes(Node)
    Set Node = Node.Next
  Loop
  CountNodes = Count
End Function
Lasciate ogni speranza, voi ch'entrate.

HBasic
Новичок
Новичок
 
Сообщения: 49
Зарегистрирован: 01.03.2009 (Вс) 21:53

Re: Как обратиться к любой ноде в TreeView

Сообщение HBasic » 13.03.2009 (Пт) 20:36

alibek писал(а):Как-то так.
Код: Выделить всё
Function CountNodes(Parent As Node) As Long
  Dim Node As Node, Count As Long
  Set Node = Parent.Child
  Do Until Node Is Nothing
    Count = Count + 1
    If Node.Children > 0 Then Count = Count + CountNodes(Node)
    Set Node = Node.Next
  Loop
  CountNodes = Count
End Function

Спасибо.Утром наткнулся случайно на другой пример.Ключевое слово тут Set.Это-то мне и было нужно.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15

    TopList