powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / TreeView and CheckBoxes
8 сообщений из 8, страница 1 из 1
TreeView and CheckBoxes
    #33032403
CLilian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот никак не могу понять как сделать так штобы выделялись все елементы Child под Parent когда выделяешь елемента Parent?

См. рисунок.
За ранние спосибо!
...
Рейтинг: 0 / 0
TreeView and CheckBoxes
    #33032450
golb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я недавно сталкивался с этой проблемой. Решил при помощи рекурсивных вызовов (ведь потомки могут иметь в свою очередь потомков, а те тоже и так далее). Вроде работает.
Просто привожу всю процедуру, вписав некоторые комментарии.
--------------------------------------------------------------------------
Private Sub TreeCheck4Children(xNode As Node)
Dim xSubNode As Node
Dim i As Integer

On Error GoTo SubErr

детей нет - заканчиваем сразу
If xNode.Children < 1 Then Exit Sub
ловим первого потомка
Set xSubNode = xNode.Child
его индекс в дереве
i = xSubNode.Index
первый потомок получает значение родителя
xSubNode.Checked = xNode.Checked
здесь рекурсивно вызывается эта же проца на случай, если у него тоже есть потомки
If xSubNode.Children > 0 Then
Call TreeCheck4Children(xSubNode)
End If
это у нас полностью обработан первый потомок с его потомками (если имеются) и потомками потомков (опять же если имеются)
.........................................................................
теперь в цикле таким же точно образом обрабатываем всех его родичей
- это ведь остальные прямые потомки нашего узелка,
рекурсивно проверяя и обрабатывая потомков этих родичей
While i <> xSubNode.LastSibling.Index
DemoTree.Nodes(i).Next.Checked = xNode.Checked

If DemoTree.Nodes(i).Next.Children > 0 Then
Call TreeCheck4Children(DemoTree.Nodes(i).Next)
End If

i = DemoTree.Nodes(i).Next.Index
Wend

SubEnd:
Exit Sub
SubErr:
Debug.Print ("Fehler in TreeCheck4Children@" & UserControl.Name & Err.Description)
RaiseEvent Failed(Array("TreeCheck4Children.vrWizStatDisassemble.WizStatDisassemble.ocx", Err.Number, Err.Description, Err.Source))
Resume SubEnd
End Sub
...
Рейтинг: 0 / 0
TreeView and CheckBoxes
    #33032451
golb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошу прощения за форматирование. сожралось как всегда. но разобраться думаю сможешь. успехов.
...
Рейтинг: 0 / 0
TreeView and CheckBoxes
    #33032467
CLilian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спосибо разобрался. Если не трудно как сделать цикл по 'Node'-ам штобы посматреть какие Node выбраны?

Спосибо!
...
Рейтинг: 0 / 0
TreeView and CheckBoxes
    #33032568
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примерно так

Код: plaintext
1.
2.
3.
For each nodX in TreeView.Nodes
  If nodX.Checked then
  endif
Next
...
Рейтинг: 0 / 0
TreeView and CheckBoxes
    #33032944
CLilian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спосибо HandKot!
...
Рейтинг: 0 / 0
TreeView and CheckBoxes
    #33034287
golb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если не секрет, это что за язык в твоём тривью?
...
Рейтинг: 0 / 0
TreeView and CheckBoxes
    #33034513
CLilian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это румынский!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / TreeView and CheckBoxes
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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