日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

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

發(fā)布時間:2025/5/22 C# 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 winformC# TreeView 点击父节点,子节点全选, 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
private bool nextCheck(TreeNode n) //判斷同級的節(jié)點是否全選{foreach (TreeNode tn in n.Parent.Nodes){if (tn.Checked == false) return false;}return true;}private bool nextNotCheck(TreeNode n) //判斷同級的節(jié)點是否全不選{if (n.Checked == true){return false;}if (n.NextNode == null){return true;}return this.nextNotCheck(n.NextNode);}private void cycleChild(TreeNode tn, bool check) //遍歷節(jié)點下的子節(jié)點{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) //遍歷節(jié)點上的父節(jié)點{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) //當(dāng)選中或取消選中樹節(jié)點上的復(fù)選框時發(fā)生{//要求父節(jié)點被勾選,則子節(jié)點全部被勾選;父節(jié)點不被勾選,則子節(jié)點不全不被勾選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); //中間節(jié)點不選中則子節(jié)點全部不選中cycleParent(e.Node, false); //父節(jié)點不選中}// bCheck = false;}return;} C#treeview 一坨黃色?|?初學(xué)一級?|?園豆: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 回復(fù)?|?ArnoldZhang?|?大俠五級?|園豆:8874?|?2012-04-23 11:30

試了你的代碼.不行啊,點父節(jié)點的check 下面的子節(jié)點沒反應(yīng).

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

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

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

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

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

轉(zhuǎn)載于:https://www.cnblogs.com/ting5/p/6225692.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。