2
所有子节点我使用的TreeView,我用这个代码的形式检查,未经检查的所有子节点时选中只在树状
private bool updatingTreeView;
private void CheckChildren_ParentSelected(TreeNode node, Boolean isChecked)
{
foreach (TreeNode item in node.Nodes)
{
item.Checked = isChecked;
if (item.Nodes.Count > 0)
{
this.CheckChildren_ParentSelected(item, isChecked);
}
}
}
private void SelectParents(TreeNode node, Boolean isChecked)
{
//MessageBox.Show(node.Parent.ToString());
if (node.Parent != null)
{
node.Parent.Checked = isChecked;
SelectParents(node.Parent, isChecked);
}
}
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (updatingTreeView) return;
updatingTreeView = true;
CheckChildren_ParentSelected(e.Node, e.Node.Checked);
SelectParents(e.Node, e.Node.Checked);
updatingTreeView = false;
}
但现在
这里选择父母或子女节点问题:
当我未选中的子节点我只想取消选中树视图中的所有childnode。
喜欢这幅画:
但是我的代码的所有父母和孩子(两个)处于未选中状态!
所以现在我想知道我怎么能只未选中树视图中的所有子节点,
现在如何改变这种代码解决这个问题?
亲切的问候。
在你的榜样你会怎么过取消选中节点6?似乎如果你只清除根节点,你将永远无法清除根目录 – timmy 2013-04-30 21:19:16
@timmy:我不知道我可以用我的代码或现在,但我知道这是可能的:D所以你有对我有什么想法? :( – Sam 2013-04-30 21:36:08
对我来说,它看起来像SelectParents递归地取消所有paretnts,直到node.Parent为空。 – Zilog 2013-04-30 23:02:33