private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
TreeNode node = e.Node;
if (node.Nodes.Count == 0)
return;
if (node.Checked)
node.Nodes.OfType<TreeNode>().ToList().ForEach(x => x.Checked = true);
else
node.Nodes.OfType<TreeNode>().ToList().ForEach(x => x.Checked = false);
}
父节点勾选,子节点自动全部勾选,父节点取消勾选,子节点自动全部取消勾选
上面的代码,为什么没有产生效果,哪里出错了?
http://www.cnblogs.com/allen0118/archive/2012/11/28/2793037.html
第一次:初始化时,所有节点均未选中,node.Checked为False,所以代码执行的结果为全部子节点的选中状态为False.第二次:选中父节点后点击该节点,node.Checked为True,代码结果为全部子节点选中.所以不要处理AfterSelect事件 因为对应启用的CheckBoxes有AfterChekc和BeforeCheck事件可供处理