WinForm中关于TreeView组件的增、删、查、改节点操作
2023年6月22日发(作者:)
WinForm中关于TreeView组件的增、删、查、改节点操作⼀、实现效果⼆、核⼼脚本/**** Title:"数据采集" 项⽬* 主题:TreeView的操作* Description:* 功能:* 1、添加节点到TreeView组件中* 2、给当前节点添加⼦节点* 3、获取到当前选择的节点* 4、根据名称获取到树中对应的节点* 5、根据⽗节点和节点名称获取到对应的节点【递归算法】* 6、根据⽗节点和节点名称获取到对应的节点* 7、删除节点* 8、更新节点
* Date:2021* Version:0.1版本* Author:Coffee* Modify Recoder:*/using System;using c;using ;using ;using ;using ;namespace { class TreeViewOPC { /// /// 添加节点到TreeView组件中 /// /// treeView组件 /// 节点名称 /// 节点名称 /// 返回当前添加的节点 public static TreeNode AddNodeToTreeView(TreeView treeView, string nodeName) { TreeNode node = null; if (treeView != null && !OrEmpty(nodeName)) { if (!nsKey(nodeName)) { //添加节点 node = new TreeNode(nodeName); (node); = nodeName; }
} return node; } /// /// 给当前节点添加⼦节点 /// /// 当前节点名称 /// 需添加的⼦节点名称 /// 返回给当前节点添加的⼦节点 public static TreeNode AddChildNodeToCurrentNode(TreeNode currentNode, string childeNodeName) { TreeNode node = null; if (currentNode != null && !OrEmpty(childeNodeName)) { if (!nsKey(childeNodeName)) { node = new TreeNode(childeNodeName); = childeNodeName; (node); (); } } return node; } /// /// 获取到当前选择的节点 /// /// treeView组件 /// 返回当前选择的节点 public static TreeNode GetSelectedNode(TreeView treeView) { TreeNode node = null; if (treeView!=null) { if (edNode != null) { node = edNode; } else { node = null; } } return node; } /// /// 根据名称获取到树中对应的节点 /// /// treeView组件 /// 节点名称 /// 返回当前节点名称对应的节点 public static TreeNode GetNodeOfName(TreeView treeView,string nodeName) { if (treeView == null && !OrEmpty(nodeName)) return null; TreeNode node = null; foreach (TreeNode item in ) { node = GetNodeOfParentNodeAndName(item,nodeName); if (node != null) break;
} return node; } /// /// 根据⽗节点和节点名称获取到对应的节点【递归算法】 /// /// treeView组件 /// 节点名称 /// 返回当前节点名称对应的节点 public static TreeNode GetNodeOfParentNodeAndName(TreeNode parentNode, string nodeName,int algorithm=2) {
if (parentNode == null) return null; if ( == nodeName) return parentNode; TreeNode node = null; foreach (TreeNode item in ) { switch (algorithm) { case 1: node = GetNodeOfParentNodeAndName(item, nodeName); break; case 2: node = GetNodeOfParenNodetAndName2(item, nodeName); break; default: break; }
if (node != null) break; } return node; } /// /// 根据⽗节点和节点名称获取到对应的节点 /// /// treeView组件 /// 节点名称 /// 返回当前节点名称对应的节点 public static TreeNode GetNodeOfParenNodetAndName2(TreeNode parentNode, string nodeName) { if (parentNode == null) return null; if ( == nodeName) { return parentNode; } else if(==0) { return null; } TreeNode currentParentNode, currentNode; currentParentNode = parentNode; currentNode = ode; while (currentNode!=null && currentParentNode!=null && currentNode!=currentParentNode) { while (currentNode!=null) { if ( == nodeName) { return currentNode; } else if ( > 0) { currentParentNode = currentNode; currentNode = ode; } else if (currentNode != de) { currentNode = de; } else { break; } } while (currentParentNode != null && currentNode != currentParentNode && currentNode == de) { currentNode = currentParentNode; currentParentNode = ; } if (currentNode!=currentParentNode) { currentNode = de; } }
return null; } /// /// 删除节点 /// /// 需要删除的节点 /// 返回删除结果 public static bool DeleteNode(TreeNode needDeleteNode) { bool success = false; if (needDeleteNode != null) { (); success = true; } return success; }
/// /// 更新节点 /// /// 需要更新的节点 /// 更新后的名称 /// 返回更新后的结果(true:表⽰更新成功) public static bool UpdateNode(TreeView treeView,TreeNode needUpdateNode, string updateName) { bool success = false; if (treeView != null && needUpdateNode !=null && !OrEmpty(updateName)) { //获取到更新后名称的节点 TreeNode updatedNode = GetNodeOfName(treeView, updateName); if (updatedNode==null) { = updateName; = updateName; success = true; }
} return success; } /// /// 更新节点 /// /// treeView组件 /// 需要更新的节点名称 /// 更新后的名称 /// 返回更新后的结果(true:表⽰更新成功) public static bool UpdateNode(TreeView treeView, string needUpdateNodeName,string updateName) { bool success = false; if (treeView != null && !OrEmpty(needUpdateNodeName)
&& !OrEmpty(updateName)) { //获取到需要更新的节点 //获取到需要更新的节点 TreeNode node = GetNodeOfName(treeView,needUpdateNodeName); //获取到更新后名称的节点 TreeNode updatedNode= GetNodeOfName(treeView, updateName); if (node!=null && updatedNode==null) { = updateName; = updateName; success = true; } } return success; }
}//Class_end}三、⼯程项⽬
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1687383952a6017.html
评论列表(0条)