//通过AfterCheck事件实现子节点全部勾选父节点被勾选,父节点勾选,子节点全部被勾选
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (check == false)
setchild(e.Node);
setparent(e.Node);
check = false;
}
//设置子节点状态
private void setchild(TreeNode node)
{
foreach (TreeNode child in node.Nodes)
{
child.Checked = node.Checked;
}
check = true;
}
//设置父节点状态
private void setparent(TreeNode node)
{
if (node.Parent != null)
{
//如果当前节点状态为勾选,则需要所有兄弟节点都勾选才能勾选父节点
if (node.Checked)
foreach (TreeNode brother in node.Parent