我想知道在Winform中的TreeView控件,如何实现选中/取消选中父节点则自动选择/取消选中对应子节点?谢谢给
4个回答
展开全部
你可以用两个递归来设置子节点和父节点的状态,如下
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);
}
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的多选功能,
然后,当点击一个节点时,就遍历他的子节点,并把子节点设置为选中
然后,当点击一个节点时,就遍历他的子节点,并把子节点设置为选中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
提醒下,您的问题好像没提完
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询