实现c#, TreeView的AfterCheck事件中的检查,主要有以下情况: 1 .父节点勾选则子节点全部勾选 2 .父节点不勾选则子节点全部不勾选 3 .子节点全部不勾选则父节点不勾选 4 .子节点部分勾选则父节点不勾选 5 .子节点全部勾选则父节点被勾选 以下是递归实现
private void SetNodeCheckStatus (TreeNode tn, bool 嗯) { ,,,,,,,if (tn ==, null) ,,,返回; ,,,//,Set child nodes check 状态 ,,,foreach (, TreeNode tnChild  tn.Nodes拷贝) ,,,{ ,,,,,,,tnChild.Checked =,嗯; ,,,,,,,SetNodeCheckStatus (tnChild,嗯); ,,,} ,,,//,Set parent check 状态 ,,,int nNodeCount =, 0; ,,,TreeNode tnParent =, tn; ,,,,(tnParent.Parent !=, null) ,,,{ ,,,nNodeCount =, 0; ,,,tnParent =, tnParent.Parent; ,,,foreach (TreeNode tnTmp  tnParent.Nodes拷贝) ,,,{ ,,,,,,,if (tnTmp.Checked ==,嗯) ,,,,,,,{ ,,,,,,,,,,,nNodeCount + +; ,,,,,,,} ,,,} ,,,if (nNodeCount ==, tnParent.Nodes.Count) ,,,,,,,tnParent.Checked =,嗯; ,,, ,,,,,,,tnParent.Checked =,假; ,,,} }