博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Winform TreeView 查找下一个节点
阅读量:6594 次
发布时间:2019-06-24

本文共 2210 字,大约阅读时间需要 7 分钟。

转载:

public static class TreeViewHelper    {        private static IEnumerable
childNodes(this TreeNode node) { return node.Nodes.Cast
() .SelectMany(x => x.selfAndChildNodes()); } private static IEnumerable
selfAndChildNodes(this TreeNode node) { return new List
() { node } .Union(node.Nodes.Cast
() .SelectMany(x => x.selfAndChildNodes())); } private static IEnumerable
nextNodes(this TreeView tree, TreeNode node) { bool after = false; if (node.Parent == null) return tree.Nodes.Cast
() .Select(x => { bool b = after = after || (node == x); return new { x, b }; }) .Where(x => x.b && x.x != node) .SelectMany(x => new List
() { x.x }.Union(x.x.childNodes())); else return node.Parent.Nodes.Cast
() .Select(x => { bool b = after = after || (node == x); return new { x, b }; }) .Where(x => x.b && x.x != node) .SelectMany(x => new List
() { x.x }.Union(x.x.childNodes())) .Union(tree.nextNodes(node.Parent)); } public static IEnumerable
NextNodes(this TreeView tree, TreeNode node) { if (tree == null || node == null) return new List
(); return node.childNodes().Union(tree.nextNodes(node)); } public static IEnumerable
NextNodes(this TreeView tree) { if (tree == null || tree.SelectedNode == null) return new List
(); return tree.NextNodes(tree.SelectedNode); } }

  

  如何调用:

var tn = _Tv.NextNodes().FirstOrDefault(x => Regex.IsMatch(x.Text, "(?i)" + txtKey.Text.Trim()));

 if (tn == null)                

    MessageBox.Show("查找完毕");            

else                

_Tv.SelectedNode = tn;

 

public static IEnumerable
TreeWhere(this TreeNodeCollection tds, Func
Fun) { foreach (TreeNode item in tds) { if (Fun(item)) yield return item; var list = item.Nodes.TreeWhere(Fun); foreach (var item1 in list) yield return item1; } }

如何调用:

 var tn = treeView1.Nodes.TreeWhere(x => Regex.IsMatch(x.Text, @"(?i)" + txtKey.Text.Trim()));

 
分类:  ,
你可能感兴趣的文章
VRRP的配置
查看>>
POJ1003题
查看>>
面试70问经典回答技巧
查看>>
从文件中读取内容
查看>>
文件系统
查看>>
网络工程路由与交换技术小综合实验
查看>>
Metasploit4.2pro MSF连接postgresql编码错误问题
查看>>
JS中Location的使用
查看>>
关于ResultSet分页以及Nutz Dao 数据库分页性能比较
查看>>
理解struct dirent * readdir(DIR * dir);含义
查看>>
shell脚本基础
查看>>
IIS负载均衡-Application Request Route详解第三篇:使用ARR进行Http请求的负载均衡(上)...
查看>>
angular作用域
查看>>
centos下cmake下安装
查看>>
商业智能及其在电子商务交易中的应用研究
查看>>
文件拷贝工具
查看>>
创业(二):减负
查看>>
Windows Server 2012 AD DS环境下域用户自动加入本地管理员组
查看>>
Windows 垃圾清除
查看>>
技术人员,为什么会苦逼
查看>>