TreeView樹中節點勾選要求:
1、不選中一個節點,則其所有的子節點都不被選中。
2、選中一個節點,則其所有的子節點都被選中。
3、當一個節點的所有子節點都沒有被選中時,該節點也沒有被選中。
4、當一個節點的所有子節點中有一個被選中時,則該節點也被選中。
代碼中對事件參數e.Action的判斷,可以避免在改變節點的Checked的狀態時,再次進入AfterCheck(),這樣當在AfterCheck()中有其他邏輯響應時,可以做到每次勾選時,其他邏輯也只響應一次。
參考代碼:
treeView_AfterCheck( (e.Action == TreeViewAction.ByMouse || e.Action == SetChildNodeCheckedState(TreeNode currNode, (currNode.Nodes == ) ; (TreeNode tmpNode = SetParentNodeCheckedState(TreeNode currNode, (currNode.Parent == ) ; (isCheckedOrNot) = checkedFlag = (TreeNode tmpNode = =