發(fā)文章
發(fā)文工具
撰寫
網(wǎng)文摘手
文檔
視頻
思維導(dǎo)圖
隨筆
相冊
原創(chuàng)同步助手
其他工具
圖片轉(zhuǎn)文字
文件清理
AI助手
留言交流
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { var node = e.Node; if (node == null) return; //根據(jù)父節(jié)點狀態(tài),全選或全消子節(jié)點 node.StateImageIndex = node.StateImageIndex == 1 ? 0 : 1; UpdateSubNodeCheckStatus(node); //確定子節(jié)點的父節(jié)點是否被選中(所有子節(jié)點選中時,,父節(jié)點才選中) UpdateParentNodeCheckStatus(node); //根節(jié)點級別選擇互斥 if (node.StateImageIndex != 1) return; var rootNode = GetRootByNode(node); UncheckNextNode(rootNode); UncheckPrevNode(rootNode); } private static TreeNode GetRootByNode(TreeNode node) { while (true) { if (node.Level == 0) { return node; } var parentNode = node.Parent; node = parentNode; } } private void UncheckPrevNode(TreeNode node) { if (node.PrevNode == null) return; node.PrevNode.StateImageIndex = 0; UpdateSubNodeCheckStatus(node.PrevNode); UncheckPrevNode(node.PrevNode); } private void UncheckNextNode(TreeNode node) { while (true) { if (node.NextNode == null) return; //node.NextNode.Checked = false; node.NextNode.StateImageIndex = 0; UpdateSubNodeCheckStatus(node.NextNode); node = node.NextNode; } } private static void UpdateParentNodeCheckStatus(TreeNode node) { var parentNode = node.Parent; if (parentNode == null) return; if (IsSubNodeAllCheck(parentNode)) { parentNode.StateImageIndex = 1; } else if (IsSubNodeAllUncheck(parentNode)) { parentNode.StateImageIndex = 0; } else { parentNode.StateImageIndex = 2; } UpdateParentNodeCheckStatus(parentNode); } private void UpdateSubNodeCheckStatus(TreeNode parentNode) { var node = parentNode; foreach (TreeNode subNode in node.Nodes) { subNode.StateImageIndex = node.StateImageIndex; UpdateSubNodeCheckStatus(subNode); } } //判斷節(jié)點的子節(jié)點是否全選 private static bool IsSubNodeAllCheck(TreeNode parentNode) { return parentNode.Nodes.Cast<TreeNode>().All(subNode => subNode.StateImageIndex==1); } //判斷同級的節(jié)點是否全不選 private static bool IsSubNodeAllUncheck(TreeNode parentNode) { return parentNode.Nodes.Cast<TreeNode>().All(subNode => subNode.StateImageIndex==0); }
來自: 昵稱10504424 > 《工作》
0條評論
發(fā)表
請遵守用戶 評論公約
C# 系統(tǒng)應(yīng)用之TreeView控件顯示樹狀磁盤文件目錄及加載圖標
Asp.net 2.0 Treeview無限級無刷新示例
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">void Treeview1_TreeNodePopulate(object sender, TreeNodeEventArgs e)Node.private void LoadChildNode(TreeNode node)TreeNode subNo...
winfrom權(quán)限設(shè)置樹形菜單
TreeView展開所有節(jié)點
TreeView展開所有節(jié)點''-----------------------展開所有節(jié)點,,如=false則折疊所有節(jié)點 Dim i As Integer For i = 1 To TreeView1.Nodes.Count TreeView1.Nodes(i).Expanded = True Ne...
淺析C# treeview控件的使用方法
淺析C# treeview控件的使用方法,。本文主要介紹C# treeView控件中,,添加,修改,、刪除節(jié)點等c# treeview控件的使用方法。} private void button1_Click(object sender, EventArgs e) {//點擊該按鈕的時...
[C#][控件]高級控件
C#—TreeView控件【轉(zhuǎn)】
C#—TreeView控件【轉(zhuǎn)】C#—TreeView控件【轉(zhuǎn)】TreeNode node = new TreeNode("...");treeView1.Nodes[0].Nodes.SelectedNode = node;(2) TreeNode node = treeView1.private void treeView1...
TreeView綁定產(chǎn)品信息
//創(chuàng)建根節(jié)點 TreeNode rootNode = new TreeNode(); //設(shè)置根節(jié)點屬性 rootNode.Text = rowlist[0]["Desn"].ToString(); //設(shè)置根節(jié)點的key值 root...
delphi Treeview用法
delphi Treeview用法 Treeview用于顯示按照樹形結(jié)構(gòu)進行組織的數(shù)據(jù)。刪除節(jié)點 Treeview.Selected.Delete 編輯節(jié)點內(nèi)容 Treeview.Selected.EditText 注意:由于根節(jié)...
微信掃碼,在手機上查看選中內(nèi)容
微信掃碼,,在手機上查看選中內(nèi)容