C# TreeView的帮助类
2016-03-29 15:12
405 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Desktop.Tools { public class TreeViewHelper { /// <summary> /// 设置选中状态 /// </summary> /// <param name="treeNode"></param> /// <param name="b"></param> public void CheckedParentToCheckAllChildren(TreeNode treeNode, bool b) { if (treeNode.Nodes.Count > 0) { foreach (TreeNode t in treeNode.Nodes) { t.Checked = b; CheckedParentToCheckAllChildren(t, b); } } else { treeNode.Checked = b; } if (treeNode.Parent != null) { if (treeNode.Parent.Parent != null) { bool d = false; foreach (TreeNode t in treeNode.Parent.Nodes) { if (t.Checked == true) { d = true; break; } } treeNode.Parent.Checked = d; } } } /// <summary> /// 根据节点的名字查找节点 /// </summary> /// <param name="tree"></param> /// <param name="name"></param> /// <returns></returns> public TreeNode FindNodeByName(TreeView tree, string name) { TreeNodeCollection tc = tree.Nodes; TreeNode ret = null; foreach (TreeNode t in tc) { ret = FindNodeByName(t,name); if (ret != null) { break; } } return ret; } /// <summary> /// 根据节点的名字查找节点 /// </summary> /// <param name="t"></param> /// <param name="name"></param> /// <returns></returns> public TreeNode FindNodeByName(TreeNode t, string name) { TreeNode ret = null; if (t.Name == name) { return t; } else { if (t.Nodes.Count > 0) { TreeNodeCollection tc = t.Nodes; foreach (TreeNode tn in tc) { ret = FindNodeByName(tn,name); if (ret != null) { break; } } } } return ret; } /// <summary> /// 根据节点显示查找节点 /// </summary> /// <param name="tree"></param> /// <param name="name"></param> /// <returns></returns> public TreeNode FindNodeByText(TreeView tree, string text) { TreeNodeCollection tc = tree.Nodes; TreeNode ret = null; foreach (TreeNode t in tc) { ret = FindNodeByText(t, text); if (ret != null) { break; } } return ret; } /// <summary> /// 根据节点显示查找节点 /// </summary> /// <param name="t"></param> /// <param name="name"></param> /// <returns></returns> public TreeNode FindNodeByText(TreeNode t, string text) { TreeNode ret = null; if (t.Text == text) { return t; } else { if (t.Nodes.Count > 0) { TreeNodeCollection tc = t.Nodes; foreach (TreeNode tn in tc) { ret = FindNodeByText(tn, text); if (ret != null) { break; } } } } return ret; } /// <summary> /// 获取复选框已经选中的node的显示文字 /// </summary> /// <param name="treeView">控件</param> /// <returns></returns> public string GetAllCheckedNodesName(TreeView treeView) { string str = string.Empty; TreeNodeCollection tnc = treeView.Nodes[0].Nodes; foreach (TreeNode node in tnc) { str += GetAllCheckedNodesName(node); } return str; } /// <summary> /// 获取复选框已经选中的node的显示文字 /// </summary> /// <param name="treeNode">节点</param> /// <returns></returns> public string GetAllCheckedNodesName(TreeNode treeNode) { string str = string.Empty; if (treeNode.Checked) { str = str + "," + treeNode.Text; if (treeNode.Nodes.Count > 0) { TreeNodeCollection trc = treeNode.Nodes; foreach(TreeNode node in trc) { str += GetAllCheckedNodesName(node); } } } return str; } } }
由于获取复选框选中节点的名字方法返回的字符串中是由“,”分割的所以字符串的第一个也是“,”
所以还需要这样的一部分代码
TreeViewHelper helper = new TreeViewHelper(); string str= helper.GetAllCheckedNodesName(treeView1); if(str.StartsWith(",")) { str = str.Substring(1, str.Length - 1); }
相关文章推荐
- C#添加DLL文件
- C#静态构造函数
- C#的Session偶尔查询不到的问题
- C# 4.5以下超时
- 【三层登录之C#版】
- C#密码加密解密类
- c# int Int32 Int64 的区别
- 存储过程详解 C#
- C# split与正则表达式
- C# DateTime和时间戳
- C# 图片截取、放大、缩小与保存
- C# backgroundwork的使用方法
- C# 特性demo
- C# Console的属性、普通数组的获取长度、反转与排序
- C# 委托应用总结(委托,Delegate,Action,Func,predicate)
- C#多线程编程时遇到跨线程访问异常的处理方法
- C#中如何获取文件图标
- C#中的invoke和begininvoke
- C# .net 抓取网页内容
- C#知识点总结