1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
trv.NodeMouseClick += new TreeNodeMouseClickEventHandler(trv_NodeMouseClick);
private void trv_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
TreeNode clickedNode = e.Node;
if (clickedNode.Checked)
{
CheckAllChildNodes(clickedNode, true);
}
else
{
CheckAllChildNodes(clickedNode, false);
}
}
private void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)
{ //Met à jour recursivement les noeuds
foreach (TreeNode node in treeNode.Nodes)
{
node.Checked = nodeChecked;
if (node.Nodes.Count > 0)
{
//Si le noeud courant a un fils, alors on appelle checkAllChield (Recursivité)
this.CheckAllChildNodes(node, nodeChecked);
}
}
} |