TreeList父子节点的选择

来源:互联网 发布:高光谱遥感数据集 编辑:程序博客网 时间:2024/05/17 22:29
/// <summary>/// 选择某一节点时,该节点的子节点全部选择  取消某一节点时,该节点的子节点全部取消选择/// </summary>private void SetCheckedChildNodes(TreeListNode node, bool check){    if (node.ChildNodes.Count > 0)    {        for (int i = 0; i < node.ChildNodes.Count; i++)        {            node.ChildNodes[i].Selected = check;            SetCheckedChildNodes(node.ChildNodes[i], check);        }    }}/// <summary>/// 某节点的子节点全部选择时,该节点选择   某节点的子节点未全部选择时,该节点不选择/// </summary>private void SetCheckedParentNodes(TreeListNode node, bool check){    if (node.ParentNode != null)    {        bool parentCheckState = node.ParentNode.Selected;        bool nodeCheckState;        for (int i = 0; i < node.ParentNode.ChildNodes.Count; i++)        {            nodeCheckState = node.ParentNode.ChildNodes[i].Selected;            if (!check.Equals(nodeCheckState))//只要任意一个与其选中状态不一样即父节点状态不全选            {                parentCheckState = !check;                break;            }            parentCheckState = check;//否则(该节点的兄弟节点选中状态都相同),则父节点选中状态为该节点的选中状态        }        node.ParentNode.Selected = parentCheckState;        SetCheckedParentNodes(node.ParentNode, check);//遍历上级节点    }}
0 0
原创粉丝点击