C#:TreeView控件实现带子节点的多选树结构
2021-01-07 09:29
标签:sel foreach next src rgs 开始 text 根据 spl 日常开发中,经常需要实现多选的树结构,并且可能存在多级节点的情况。 以WinFrom为例,下面是本人的总结。 首先创建一个TreeView 名称为 tvTest,下面开始添加主子节点。 新建一个类TreeViewCheck,用于TreeView父子级节点的选择事件,实现父级节点选中子节点跟着选择的效果。 好了,那么在TreeView的选择事件中调用。 实现的效果如下: 最后的关键,如何获取我选择到的节点值呢? 这里使用whlie循环取每个父级节点的子节点。 代码如下: 好了,思路就是这样,可以拿去参考。 C#:TreeView控件实现带子节点的多选树结构 标签:sel foreach next src rgs 开始 text 根据 spl 原文地址:https://www.cnblogs.com/healer007/p/13153884.html 1 TreeView tvTest=new TreeView();
2
3 tvTest.BeginUpdate();
4
5 for (int i = 0; i 5; i++)
6 {
7 TreeNode node = new TreeNode();
8 node.Tag = i+1;
9 node.Text = "父节点"+(i+1).Tostring();
10 node.Name = "application";
11
12 //node.ImageIndex = 1;
13 //node.SelectedImageIndex = 1;
14
15 tvTest.Nodes.Add(node);
16
17 for (int j = 0; j 4; j++)
18 {
19 TreeNode childNode = new TreeNode();
20 childNode.Tag = "子节点" + (j + 1).ToString();
21 childNode.Text = "子节点" + (j + 1).ToString();
22 node.Nodes.Add(childNode);
23 }
24 }
25 tvTest.EndUpdate();
26
1 public static class TreeViewCheck
2 {
3 ///
1 private void tvTest_AfterCheck(object sender, TreeViewEventArgs e)
2 {
3 TreeViewCheck.CheckControl(e);
4 }
1 Liststring> lstSelect=new Liststring>(); //保存值的list
2
3 //选择第一个节点
4 TreeNode selectNodes = tvTest.Nodes[0];
5 while (selectNodes != null)
6 {
7 TreeNode childNode = null; //根节点的被选中的子节点
8
9 childNode = selectNodes.FirstNode;
10 while (childNode != null) //找该节点的所有被选择的子节点
11 {
12 if (childNode.Checked)
13 {
14 //处理数据。保存节点的值
15
16 lstSelect.Add(childNode.Tag.ToString());
17 }
18 childNode = childNode.NextNode;
19 }
20 selectNodes = selectNodes.NextNode; //下一个被选中的节点
21 }
上一篇:c# 对象,IntPtr互转
文章标题:C#:TreeView控件实现带子节点的多选树结构
文章链接:http://soscw.com/index.php/essay/40670.html