TreeView 递归选择父节点和子节点

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);
    }
}
原文地址:https://www.cnblogs.com/libbybyron/p/4142657.html