zoukankan      html  css  js  c++  java
  • treeview 父子节点联动

            #region treeview联动方法
            private void UpdateCheckStatus(TreeViewEventArgs e)
            {
    
                CheckAllChildNodes(e.Node);
    
                UpdateAllParentNodes(e.Node);
    
            }
    
    
    
            // updates all parent nodes recursively.
    
            private void UpdateAllParentNodes(TreeNode treeNode)
            {
    
                TreeNode parent = treeNode.Parent;
    
                if (parent != null)
                {
    
                    if (parent.Checked && !treeNode.Checked)
                    {
    
                        parent.Checked = false;
    
                        UpdateAllParentNodes(parent);
    
                    }
    
                    else if (!parent.Checked && treeNode.Checked)
                    {
    
                        bool all = true;
    
                        foreach (TreeNode node in parent.Nodes)
                        {
    
                            if (!node.Checked)
                            {
    
                                all = false;
    
                                break;
    
                            }
    
                        }
    
                        if (all)
                        {
    
                            parent.Checked = true;
    
                            UpdateAllParentNodes(parent);
    
                        }
    
                    }
    
                }
    
            }
    
    
    
            // updates all child tree nodes recursively.
    
            private void CheckAllChildNodes(TreeNode treeNode)
            {
    
                foreach (TreeNode node in treeNode.Nodes)
                {
    
                    node.Checked = treeNode.Checked;
    
                    if (node.Nodes.Count > 0)
                    {
    
                        // If the current node has child nodes, call the CheckAllChildsNodes method recursively.
    
                        this.CheckAllChildNodes(node);
    
                    }
    
                }
    
            }
    
            #endregion
            #region treeview上下级联动事件
            private void tvDevc_AfterCheck(object sender, TreeViewEventArgs e)
            {
                if (e.Action != TreeViewAction.Unknown)
                {
    
                    UpdateCheckStatus(e);
    
                }
    
            }
            #endregion


  • 相关阅读:
    第一次作业
    习题3 作业
    人工智能原理及其运用习题3.8
    人工智能原理及其应用习题3.5
    人工智能第一次作业
    ASP.NET MVC 之CodeFirst 数据迁移
    实用小程序技巧
    通过Blogilo来写博客园的设置方法
    抢票应用总结
    微信开发--结对编程
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/2990462.html
Copyright © 2011-2022 走看看