Этот урок можно рассматривать как подолжение уроков 14 и 15.
Для того, чтобы у узлов элемента управления TreeView появились checkbox'ы в узлах, необходимо установить его свойство Checkboxes в true.
Теперь добавим радиционный код, добавляющий при загрузке формы несколько узлов и подузлов к нашему дереву:
privatevoid Form1_Load(object sender, System.EventArgs e)
{
// Создаем узел верхнего уровня.
TreeNode treeNode = treeView1.Nodes.Add("Item1");
// Создаем два подузла для него.
TreeNode treeNode11 = treeNode.Nodes.Add("Item11");
TreeNode treeNode12 = treeNode.Nodes.Add("Item12");
// Создание подузлов для подузлов.
treeNode11.Nodes.Add("Item111");
treeNode11.Nodes.Add("Item112");
treeNode12.Nodes.Add("Item121");
treeNode12.Nodes.Add("Item122");
// Раскрываем все дерево.
treeNode.ExpandAll();
}
Текст более-менее должен быть ясен из комментариев.
Если запустить теперь нашу программу, то сразу будет видно, что у узлов дерева есть checkbox'ы.
Тепрь давайте напишем код, который будет ставить или убирать галочки у всех подчиненных подузлов некоторого узла. Т. е. если, например, поставить галочку у некоторого узла нашего дерева, то все подузлы этого узла также получат галочки. И наоборот - если убрать галочку у узла, то у всех его подузлов галочка тоже уберется. Вот код:
privatevoid treeView1_AfterCheck(object sender,
System.Windows.Forms.TreeViewEventArgs e)
{
// Ставим галочку на всех подузлах.
SelectAllSubnodes(e.Node);
}
// Метод для установки галочки для всех подузлов.void SelectAllSubnodes(TreeNode treeNode)
{
// Ставим или убираем отметку со всех подузлов.foreach(TreeNode treeSubNode in treeNode.Nodes)
{
treeSubNode.Checked = treeNode.Checked;
}
}
Тут мы в методе treeView1_AfterCheck (ясно, что он вызывается при установке / снятии галочки у узла) вызываем написанный нами метод SelectAllSubnodes. Обратите внимание, что мы не используем рекурентный вызов методов - все будет работать и так.
Результат будет такой, как мы и ожидали.
PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru