C# Winfrom 写的一个Tree的递归以及调用
来源:互联网 发布:淘宝水印在哪里设置 编辑:程序博客网 时间:2024/06/05 01:01
1递归实现联动效果,
#region 选中的联动效果 #region 设置的父节点checkbox选中状态 private void setNodeTrue(Node selNode) { Node node = selNode.Parent; if (node != null) { node.CheckState = CheckState.Checked; setNodeTrue(node); } } #endregion #region 将树的checkbox选中 private void setNodeStateTrue(Node selNode) { if (selNode.CheckBoxVisible) { selNode.CheckState = CheckState.Checked; foreach (Node node in selNode.Nodes) { setNodeStateTrue(node); } } } #endregion // 将树的checkbox取消选中 private void setNodeStateFalse(Node selNode) { if (selNode.CheckBoxVisible) { selNode.CheckState = CheckState.Unchecked; foreach (Node node in selNode.Nodes) { setNodeStateFalse(node); } } } // 将树的checkbox取消选中 private void setNodeFalse(Node selNode) { Node nextNode = selNode.NextNode; Node previousNode = selNode.PrevNode; Node praNode = selNode.Parent; if (praNode != null) { while (nextNode != null) { if (nextNode.Checked) { return; } nextNode = nextNode.NextNode; } while (previousNode != null) { if (previousNode.Checked) { return; } previousNode = previousNode.PrevNode; } praNode.CheckState = CheckState.Unchecked; setNodeFalse(praNode); } } #endregion2.在NodeClick中的调用
Node node = e.Node; if (node.Checked) { setNodeTrue(node); setNodeStateTrue(node); } else { setNodeStateFalse(node); setNodeFalse(node); }3 获得选中的值
List<Node> CheckednodeList = new List<Node>(); private void readAllNode(Node tn) { if (tn == null) { return; } if (tn.Nodes.Count.Equals(0)) { return ; } foreach (Node children in tn.Nodes) { //MessageBox.Show(string.Format(tn.Text+"节点有{0}", children.Text)); readAllNode(children); if (children.CheckState ==CheckState.Checked && children!=tn) { CheckednodeList.Add(children); } } }
4.获得值已经存在CheckednodeList 里面了,用的时候去遍历下,取出来就好了
- C# Winfrom 写的一个Tree的递归以及调用
- C#的递归调用
- winfrom下tree的使用
- c#中调用IE打开Url地址的方法 winfrom
- c# winfrom资源文件的调用和路径全解
- C# winfrom 窗体调用 WPF 窗体注意的事项
- 分享一个 C# Winfrom 下的 OutlookBar 控件的使用
- C# winfrom软件的稳定性
- C# winfrom简单的题目
- 一个C#写的调用外部进程类
- 一个C#写的调用外部进程类
- 一个C#写的调用外部进程类
- 写一个简单的存储过程,并C#调用
- 递归调用的一个例子
- 《Java程序》使用递归调用的方法,写一个能够将字符串倒叙输出的函数
- 这阶段写了一个自定义的dictionary在自己的winfrom里应用
- 如何写递归程序 以及 递归和栈的联系
- WinFrom调用执行Clementine模型的方法
- NAT的完全分析及其UDP穿透的完全解决方案
- Servlet 中文乱码问题及解决方案剖析
- JS函数集合大全
- 【教你Win7下如何激活快速启动栏】
- ASCLL 百科
- C# Winfrom 写的一个Tree的递归以及调用
- Android获取已安装应用信息(图标,名称,版本号,包)
- 二进制、八进制、十进制、十六进制之间转换
- 第 10 章 - 定制 Debian GNU/Linux 的安装
- Java具有创建applet的能力,它是在Web浏览器中运行的小程序-Applet 的限制
- 强大的Visual Studio调试小技巧
- JS日期时间函数
- redis--string数据类型
- C++静态成员(函数)小结