Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
 Аватар для pilot747
3 / 3 / 2
Регистрация: 21.06.2011
Сообщений: 50

как считать все подузлы treeview

07.01.2013, 15:21. Показов 1569. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Имеется функция:
C#
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
foreach (string s in colbezdub)
            {
                TreeNode tn1 = new TreeNode();
                tn1.Name = s;
                tn1.Text = s;
                tn1.Tag = tag;
                treeView1.Nodes.Add(tn1);
            }
            foreach (TreeNode tn in treeView1.Nodes)
            {
                
                if (tn.Tag.ToString() == tag.ToString())
                {
                
                    string узлы1 = ПоискБлизкихСлов(tn.Text);
                    if (узлы1 != "")
                    {
                        string[] arrУзлы1 = узлы1.Split();
                        System.Array.Resize(ref arrУзлы1, arrУзлы1.Length - 1);
                        foreach (string st in arrУзлы1)
                        {
                            TreeNode trn1 = new TreeNode();
                            trn1.Name = st;
                            trn1.Text = st;
                            trn1.Tag = tag;
                            tn.Nodes.Add(trn1);
                        }
                    }
                }
             }
        }
Функция ПоискБлизкихСлов возвращает строку типа "слово слово слово слово"
Проблема в этом месте:
C#
1
foreach (TreeNode tn in treeView1.Nodes)
Дело в том, что в таком случае считываются только узлы первого уровня глубины, а надо считать все подузлы подузлов и т. д. (все уровни глубины).
Уже затерроризировал весь google, помогите пожалуйста.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.01.2013, 15:21
Ответы с готовыми решениями:

При выборе узла TreeView его подузлы записать в ListView
Как сделать, что бы при выборе какого-нибудь узла TreeView его подузлы отображались в ListView?

Как считать данные, привязанные к элементу TreeView?
Как создаю, привязываю данные (указатель на данный объект) и добавляю его в TreeView Control: TVITEM tvi; tvi.mask = TVIF_TEXT |...

TreeView считать данные
В общем задача такова. есть тривью. Вот снимок В общем я хочу чтобы при выборе, например, Благовещенска, в переменные...

2
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
07.01.2013, 15:54
Используйте рекурсию или стэк.
0
 Аватар для pilot747
3 / 3 / 2
Регистрация: 21.06.2011
Сообщений: 50
07.01.2013, 17:51  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Используйте рекурсию или стэк.
Ну я попробывал написать так:
C#
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
public TreeNode НовыйУзел(TreeNode tn)
        {
            string узлы = ПоискБлизкихСлов(tn.Name);
            string[] массУзлы1 = узлы.Split();
            foreach (string s in массУзлы1)
            {          
                bool bl = true;
                РодителиУзла(tn);
                string[] массРодители = родители.Split();
                foreach (string st in массРодители)
                {
                    if (st == s)
                    {
                        bl = false;
                    }
                }
                родители = "";
                if (bl)
                {
                    TreeNode подузел = new TreeNode();
                    подузел.Name = s;
                    подузел.Text = s;
                    подузел = НовыйУзел(подузел);
                    tn.Nodes.Add(подузел);
                }
                }
            }
и
C#
1
2
3
4
5
6
7
8
9
10
11
public void РодителиУзла(TreeNode tn)
        {
            try
            {
                родители = tn.Parent.Name + " ";
                РодителиУзла(tn.Parent);
            }
            catch
            {
            }
        }
но почему то при рекурсивном вызове функции НовыйУзел родители узла не сохраняются.

Добавлено через 30 минут
мне даже не обязательно считывать все узлы дерева, достаточно считать узлы i-ого уровня глубины.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.01.2013, 17:51
Помогаю со студенческими работами здесь

Как свернуть все узлы в TreeView
Всем привет, Как свернуть все узлы в TreeView ?! помогите плизз

Считать SQL-выборку в TreeView
Здравствуйте. При написании работы возникла следующая проблема - мне необходимо считать выборку из трех таблиц в элемент TreeView. Таблицы...

Как из папки в дереве TreeView выбрать все файлы?
Надо в Picture загрузить все файлы (поочереди) с расширением BMP, предварительно выбрав папку с этими файлами в TreeView. С TreeView я...

Как считать всё до определённого символа?
есть строка по типу этой D:\1.txt нужно получять всё до точки тоесть чтобы было так txt

Считать информацию с базы данных и вывести ее и ListBox или treeview
Добрый день, помогите пожалуйста считать информацию с базы данных и вывести ее и ListBox или treeview, база которую использую SQLite ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru