树节点—点击事件 — 根据节点名字,递归加载项

#region树节点 —点击事件 — 根据节点名字加载检查项

    /// <summary>
    /// 根据节点名字加载检查项
    /// </summary>
    /// <param name="PersonName">节点的名字</param>
    /// <param name="checkProjects">检查项成员链表</param>
    public void CheckEmployee(string PersonName, List<CheckProject> checkProjects)
    {
    
        _Checks = checkProjects
        TreeNode[] treeNode = treeView.Nodes.Find(PersonName, true);
        for (int i = 0; i < treeNode.Length; i++)
        {
            //在所选节点加载检查项
            LoadChecks(treeNode[i]);
            //展开检查项
            treeNode[i].ExpandAll();
            //让其父节点展开
            IsPrate(treeNode[i]);
        }
        
    }
    /// <summary>
    /// 递归 让其父节点展开
    /// </summary>
    /// <param name="tn"></param>
    public void IsPrate(TreeNode tn)
    {
        if (tn.Parent!=null)
        {
            tn.Parent.Expand();
            IsPrate(tn.Parent);
        }
        
    }
    #endregion

    #region 对选中节点进行检查项的递归加载
    /// <summary>
    /// 一级检查项的递归加载
    /// </summary>
    /// <param name="tn"></param>
    public void LoadChecks(TreeNode tn)
    {
        foreach (CheckProject checkitem in _Checks)
        {
            //一级检查项
            if (!tn.Nodes.ContainsKey(checkitem.CheckProjectName))
            {
                TreeNode tn1 = new TreeNode();
                tn1.Name = checkitem.CheckProjectName;
                tn1.Text = checkitem.CheckProjectName;

                tn.Nodes.Add(tn1);
                SecondLoadChecks(tn1);
            }
        }
    }
    /// <summary>
    /// 二级检查项递归加载
    /// </summary>
    /// <param name="tn"></param>
    public void SecondLoadChecks(TreeNode tn)
    {
        foreach (CheckProject item in _Checks)
        {
            if (item.CheckProjectName == tn.Name)
            {
                TreeNode tn1 = new TreeNode();
                tn1.Text = item.Sub_CheckProject;
                tn1.Name = item.Sub_CheckProject;
                tn.Nodes.Add(tn1);
                SecondLoadChecks(tn1);
            }
        }

    }

#endregion

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值