#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