zoukankan      html  css  js  c++  java
  • TreeView的checked事件

        /// <summary>
            /// TreeView checked事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void tvMenu_AfterCheck(object sender, TreeViewEventArgs e)
            {
                CheckAll(e.Node);
            }

            /// <summary>
            /// 全部节点check处理
            /// </summary>
            /// <param name="eTreeNode"></param>
            private void CheckAll(TreeNode eTreeNode)
            {
                tvMenu.AfterCheck -=new TreeViewEventHandler(tvMenu_AfterCheck);
                if (eTreeNode.Parent != null)
                {
                    CheckParent(eTreeNode);
                }
                if (eTreeNode.Nodes.Count > 0)
                {
                    foreach (TreeNode mTN in eTreeNode.Nodes)
                    {
                        mTN.Checked = eTreeNode.Checked;
                       
                        foreach (TreeNode mTNSub in mTN.Nodes)
                        {
                            mTNSub.Checked = mTN.Checked;
                            CheckSub(mTNSub);
                        }
                    }
                }
               
                tvMenu.AfterCheck += new TreeViewEventHandler(tvMenu_AfterCheck);
            }
            /// <summary>
            /// 父节点处理
            /// </summary>
            /// <param name="eTreeNode"></param>
            private void CheckParent(TreeNode eTreeNode)
            {
                if (eTreeNode.Parent == null)
                {
                    return;
                }
               
                eTreeNode.Parent.Checked = eTreeNode.Checked;
               
                foreach (TreeNode mTN in eTreeNode.Parent.Nodes)
                {
                    eTreeNode.Parent.Checked = (eTreeNode.Parent.Checked || mTN.Checked);
                    if (mTN.Parent != null)
                    {
                        CheckParent(mTN.Parent);
                    }
                }
            }
            /// <summary>
            /// 子节点处理
            /// </summary>
            /// <param name="eTreeNode"></param>
            private void CheckSub(TreeNode eTreeNode)
            {
                foreach (TreeNode mTN in eTreeNode.Nodes)
                {
                    mTN.Checked = eTreeNode.Checked;
                    CheckSub(mTN);
                }
            }

  • 相关阅读:
    Java集合框架--Collection
    xhprof windows下安装和使用(转载)
    什么是socket
    访问国外网络的卡顿问题
    关于go的通信通道channel——chan的一些问题
    关于go的入门书籍——go自学的序
    Linux中find常见用法示例 &#183;find path -option [ -print ] [ -exec -ok command ] {} ;
    php的一个有意思的命令:-S
    看看第一篇随笔的效果
    Mysql limit
  • 原文地址:https://www.cnblogs.com/skyblue/p/955132.html
Copyright © 2011-2022 走看看