日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

winformC# TreeView 点击父节点,子节点全选,

發布時間:2025/5/22 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 winformC# TreeView 点击父节点,子节点全选, 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
private bool nextCheck(TreeNode n) //判斷同級的節點是否全選{foreach (TreeNode tn in n.Parent.Nodes){if (tn.Checked == false) return false;}return true;}private bool nextNotCheck(TreeNode n) //判斷同級的節點是否全不選{if (n.Checked == true){return false;}if (n.NextNode == null){return true;}return this.nextNotCheck(n.NextNode);}private void cycleChild(TreeNode tn, bool check) //遍歷節點下的子節點{if (tn.Nodes.Count != 0){foreach (TreeNode child in tn.Nodes){child.Checked = check;if (child.Nodes.Count != 0){cycleChild(child, check);}}}elsereturn;}private void cycleParent(TreeNode tn, bool check) //遍歷節點上的父節點{if (tn.Parent != null){if (nextCheck(tn)){tn.Parent.Checked = true;}else{tn.Parent.Checked = false;}cycleParent(tn.Parent, check);}return;}// afterCheckprivate void treeView1_AfterCheak(object sender, TreeViewEventArgs e) //當選中或取消選中樹節點上的復選框時發生{//要求父節點被勾選,則子節點全部被勾選;父節點不被勾選,則子節點不全不被勾選if (e.Node.Checked == true){if (e.Action != TreeViewAction.Unknown){cycleChild(e.Node, true);}if (e.Node.Parent != null){if (nextCheck(e.Node)){cycleParent(e.Node, true);}else{cycleParent(e.Node, false);}}}if (e.Node.Checked == false){if (e.Action != TreeViewAction.Unknown){cycleChild(e.Node, false); //中間節點不選中則子節點全部不選中cycleParent(e.Node, false); //父節點不選中}// bCheck = false;}return;} C#treeview 一坨黃色?|?初學一級?|?園豆:13
提問于:2012-04-23 11:02
最佳答案 0

直接用我這個得了:

Boolean bChildTrigger = true; Boolean bParentTrigger = true;private void tv_AfterCheck(object sender, TreeViewEventArgs e) {// MessageBox.Show("Node text: " + e.Node.Text);if (bChildTrigger){CheckAllChildren(e.Node, e.Node.Checked); }if (bParentTrigger){ CheckMyParent(e.Node, e.Node.Checked);} }void CheckAllChildren(TreeNode tn, Boolean bCheck) {bParentTrigger = false;foreach (TreeNode ctn in tn.Nodes){bChildTrigger = false; ctn.Checked = bCheck;bChildTrigger = true;CheckAllChildren(ctn, bCheck);}bParentTrigger = true; }void CheckMyParent(TreeNode tn, Boolean bCheck) {if (tn == null) return;if (tn.Parent == null) return;bChildTrigger = false;bParentTrigger = false;tn.Parent.Checked = bCheck;CheckMyParent(tn.Parent, bCheck);bParentTrigger = true;bChildTrigger = true; } 收獲園豆:50 回復?|?ArnoldZhang?|?大俠五級?|園豆:8874?|?2012-04-23 11:30

試了你的代碼.不行啊,點父節點的check 下面的子節點沒反應.

支持(0)反對(0)回復?|?一坨黃色?|?園豆:13?(初學一級)?|?2012-04-23 11:39

@一坨黃色: 不會吧。你自己改改試試。

支持(0)反對(0)回復?|?ArnoldZhang?|?園豆:8874?(大俠五級)?|?2012-04-23 12:05

@荒野的呼喚:?你的代碼只要把tv_AfterCheak改成我的treeview控件名稱就可以了撒..其它位置不用改撒.我試了不行啊..

支持(0)反對(0)回復?|?一坨黃色?|?園豆:13?(初學一級)?|?2012-04-23 14:07 其他回答(4) 0 private bool nextNotCheck(TreeNode n) //判斷同級的節點是否全不選{if (n.Checked == true){return false;}if (n.NextNode == null){return true;}return this.nextNotCheck(n.NextNode);

轉載于:https://www.cnblogs.com/ting5/p/6225692.html

總結

以上是生活随笔為你收集整理的winformC# TreeView 点击父节点,子节点全选,的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。