/// <Summary>
/// Recursively select all self-nodes
/// </Summary>
/// <Param name = "nodethis"> treenode </param>
Private void checkallchildnode (treenode nodethis)
{
Foreach (treenode childnode in nodethis. nodes)
{
Childnode. Checked = nodethis. checked;
If (childnode. nodes! = NULL)
{
Checkallchildnode (childnode );
}
}
}
/// <Summary>
/// If the node itself is selected, all the child nodes at the same level under the parent node will be selected, select the parent node (recursive selection)
/// </Summary>
/// <Param name = "nodethis"> node </param>
Private void checkparentnode (treenode nodethis)
{
// Obtain the parent node
Treenode parentnode = nodethis. parent;
If (parentnode = NULL)
{
Return;
}
Bool isallchecked = true;
// Traverse all the same level
Foreach (treenode node in parentnode. nodes)
{
If (node. Checked! = True)
{
Isallchecked = false;
Break;
}
}
Parentnode. Checked = isallchecked;
If (parentnode. parent! = NULL)
{
Checkparentnode (parentnode );
}
}