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