.net中TreeView使用方法小结(1)

在新项目的开发中,TreeView的作用很重要,这两天好好的学习了一下treeview的使用方法。

这篇文章主要关注TreeView带有CheckBox的情况。

 

在TreeView中点击CheckBox触发的函数如下:

 

        private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
        {

        }
 

在这个事件中选中,或者取消的那一个节点为:

TreeNode node = e.Node;

使用TreeView控件要经常使用到递归算法。下面举两个例子:

窗体如下:

image

  • 选中父节点,则子节点也全部选中
        private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
        {
            TreeNode node = e.Node;
            if (node.Checked)
            {
                SetChildNodesState(e.Node);
            }
        }

        private void SetChildNodesState(TreeNode ParentNode)
        {
            if (ParentNode.Nodes != null)
            {
                foreach (TreeNode node in ParentNode.Nodes)
                {
                    node.Checked = true;
                    SetChildNodesState(node);
                }
            }
        }
  • 取消选中子节点,则父节点也取消选中
       private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
        {

            TreeNode node = e.Node;

            if (node.Checked == false)
            {
                SetParentNodeState(e.Node);
            }
        }

 

        private void SetParentNodeState(TreeNode ChildNode)
        {
            if (ChildNode.Parent != null)
            {
                ChildNode.Parent.Checked = false;
                SetParentNodeState(ChildNode.Parent);
            }
        }

未完待续
posted @ 2014-07-28 18:17  一点都不清新  阅读(1378)  评论(0编辑  收藏  举报