privatevoid treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (e.Action != TreeViewAction.ByMouse)
return;
SetParentNode(e.Node);
SetChildNode(e.Node);
}
privatevoid SetParentNode(TreeNode node)
{
if (node.Level >0)
{
node.Parent.Checked =true;
SetParentNode(node.Parent);
}
}
privatevoid SetChildNode(TreeNode node)
{
foreach (TreeNode childNode in node.Nodes)
{
childNode.Checked = node.Checked;
if (node.Nodes.Count >0)
SetChildNode(childNode);
}
}