我想知道在Winform中的TreeView控件,如何实现选中⼀取消选中父节点则自动选择⼀取消选中对应子节点?谢谢给

2024-12-19 12:52:59
推荐回答(4个)
回答1:

你可以用两个递归来设置子节点和父节点的状态,如下

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);
}

回答2:

....希望你能够仔细的看看TreeView的属性!!! 有一项就是选中父节点自动选中其所有子节点的

回答3:

首先要打开treeview的多选功能,
然后,当点击一个节点时,就遍历他的子节点,并把子节点设置为选中

回答4:

提醒下,您的问题好像没提完