博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
winform TreeView 节点选择
阅读量:6373 次
发布时间:2019-06-23

本文共 2397 字,大约阅读时间需要 7 分钟。

public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        string tag = "True";        StringBuilder nodesTag;        ///         /// 全选        ///         ///         ///         private void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)        {            foreach (TreeNode node in treeNode.Nodes)            {                node.Checked = nodeChecked;                node.Tag = tag;////记得在这里为选中的项目设置tag属性                if (node.Nodes.Count > 0)                {                    this.CheckAllChildNodes(node, nodeChecked);                }            }        }        private void TraversNodes(TreeNode parent)        {            TreeNode node = parent;            if (node != null)            {                if (node.Tag != null && node.Tag.ToString() == tag)                    nodesTag.AppendFormat("node:{0} has checked\n", node.Text);                if (node.FirstNode != null)////如果node节点还有子节点则进入遍历                {                    TraversNodes(node.FirstNode);                }                if (node.NextNode != null)////如果node节点后面有同级节点则进入遍历                {                    TraversNodes(node.NextNode);                }            }        }        ///         /// 已选中或取消选中框发生事件        ///         ///         ///         private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)        {            if (e.Action != TreeViewAction.Unknown)            {                TreeNode node = e.Node;                if (node.Tag == null)                    node.Tag = tag;//附加结点信息                else                    node.Tag = null;                CheckAllChildNodes(e.Node, e.Node.Checked);                //选中父节点                 bool bol = true;                if (e.Node.Parent != null)                {                    for (int i = 0; i < e.Node.Parent.Nodes.Count; i++)                    {                        if (!e.Node.Parent.Nodes[i].Checked)                            bol = false;                    }                    e.Node.Parent.Checked = bol;                    ////记得如果父节点被选中或取消,记得设置它的tag                    if (bol)                    {                        e.Node.Parent.Tag = tag;                    }                    else                    {                        e.Node.Parent.Tag = null;                    }                }            }        }    }

 

转载地址:http://zljqa.baihongyu.com/

你可能感兴趣的文章
iis7.0修改网站端口
查看>>
Vista下串口问题
查看>>
SYS_单据序列Sequence产生方式(案例)
查看>>
android2.2源码初探
查看>>
AMD OpenCL大学课程(11)
查看>>
康拓展开及应用
查看>>
VC :模板类
查看>>
对C++中string类型的总结
查看>>
SharePoint的数据库性能需要注意的一点
查看>>
Oracle发布公共云Public Cloud
查看>>
表驱动
查看>>
eclipse高亮显示
查看>>
C#简单的面试题目(六)
查看>>
Shell 操作数据库
查看>>
C# UDP 网络聊天程序
查看>>
if lte IE if gte IE 浏览器兼容
查看>>
基于Lumisoft.NET组件和.NET API实现邮件发送功能的对比
查看>>
设置类UIColor使用colorWithRed定义颜色
查看>>
C#数据库访问技术之DATAREADER对象读取数据
查看>>
各种排序方法
查看>>