Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
FluffyPuff
0 / 0 / 1
Регистрация: 24.05.2015
Сообщений: 11
#1

TreeView и Checkbox. Выделить дочерние элементы, если выделен родительский - C#

01.08.2015, 11:20. Просмотров 1358. Ответов 4
Метки нет (Все метки)

Доброго времени суток!
Подскажите, как сделать, чтобы при выделении CheckBox напротив родительского узла в дереве, выделялись все дочерние элементы этого узла?
Заранее спасибо!

Добавлено через 2 часа 2 минуты
Уже разобралась
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            if (e.Node.Checked==true)
                    {
                        for (int i = 0; i < e.Node.Nodes.Count; i++)
                        {
                                e.Node.Nodes[i].Checked = true;   
                        for (int j = 0; j < e.Node.Nodes[i].Nodes.Count; j++)
                        {
                            e.Node.Nodes[i].Nodes[j].Checked = true;
                            for (int k = 0; k < e.Node.Nodes[i].Nodes[j].Nodes.Count; k++)
                            {
                                e.Node.Nodes[i].Nodes[j].Nodes[k].Checked = true;
                            }
                        }
                        }
                    }
        }
Способ конечно громоздкий, но если есть попроще, буду рада узнать
http://www.cyberforum.ru/windows-forms/thread636453.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2015, 11:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос TreeView и Checkbox. Выделить дочерние элементы, если выделен родительский (C#):

Treeview выделить node если известен FullPath к нему
На форме есть Treeview. В программе формируется во время работы допустим путь...

TreeView: отметить родительский узел после отметки дочернего узла
Подписался на событие: private void tvTest_AfterCheck(object sender,...

TreeView и CheckBox
Добрый вечер. У меня есть TreeView с включенным свойством CheckBoxex,...

CheckBox в TreeView
Здравствуйте. Подскажите, пожалуйста! Имеется дерево. Нужно, чтобы: 1. при...

Выделить узел TreeView
Подскажите как выделить узел treeView1? Следующий код выводит контекстное меню...

4
tvv1
77 / 70 / 25
Регистрация: 26.10.2010
Сообщений: 231
Завершенные тесты: 4
01.08.2015, 11:51 #2
Лучший ответ Сообщение было отмечено FluffyPuff как решение

Решение

Есть по проще:

На выделение ноды вызываете метод для отметки всех нод, в метод передаете ноду которая выделена.
В самом методе чекаете ноду и проверяете есть ли дочерние.
Если дочерние есть - в цикл их и там проверять, есть ли у них тоже дочерние. Если есть, снова вызываете этот метод(рекурсия) передавая текущую ноду.
1
FluffyPuff
0 / 0 / 1
Регистрация: 24.05.2015
Сообщений: 11
02.08.2015, 07:27  [ТС] #3
Спасибо
все прекрасно работает, такой же алгоритм использовала для снятия меток
0
Gedeon007
0 / 0 / 0
Регистрация: 02.05.2017
Сообщений: 1
02.05.2017, 15:09 #4
А можете ли Вы поделиться примерчиком?
0
Osobennyi
0 / 0 / 0
Регистрация: 11.06.2017
Сообщений: 1
11.06.2017, 14:28 #5
Вот пример, как ставить и убирать флажки дочерних элементовCheckBox'a в treeView:
C#
1
2
3
4
5
6
7
8
9
10
11
12
        private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            treeViewChangeCheckBox(e.Node);
        }
        private void treeViewChangeCheckBox(TreeNode Node)
        {
            for (int i = 0; i < Node.Nodes.Count; i++)
            {
                Node.Nodes[i].Checked = Node.Checked;
                treeViewChangeCheckBox(Node.Nodes[i]);
            }
        }
0
11.06.2017, 14:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2017, 14:28
Привет! Вот еще темы с решениями:

Checkbox в TreeView у конкретных узлов
Доброе время суток. Есть TreeView, у определенных узлов которого требуются...

Дочерние элементы
Есть GroupBox внутри которого находятся CheckBox, которых в сумме получается 30...

Как выделить два узла в TreeView
Как можно выделять два и более узла в TreeView?

TreeView с CheckBox-ами только у дочерних узлов, а не у корневых
Хочу чтоб у дерева элемента treeView не было чекбоксов на верхнем уровне дерева...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru