你可以用两个递归来设置子节点和父节点的状态,如下
private void CheckChild(TreeNode node)
{
if (node.Nodes.Count != 0)
{
foreach (TreeNode item in node.Nodes)
{
item.Checked = node.Checked;
CheckChild(item);
}
}
}
private void CheckParent(TreeNode node)
{
if (node.Parent != null)
{
int count = 0;
foreach (TreeNode item in node.Parent.Nodes)
{
if (item.Checked)
{
count++;
}
}
node.Parent.Checked = (count == node.Parent.Nodes.Count);
CheckParent(node.Parent);
}
}
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
CheckChild(e.Node);
CheckParent(e.Node);
}
....希望你能够仔细的看看TreeView的属性!!! 有一项就是选中父节点自动选中其所有子节点的
首先要打开treeview的多选功能,
然后,当点击一个节点时,就遍历他的子节点,并把子节点设置为选中
提醒下,您的问题好像没提完