Winform 中 treeview 多选
来源:互联网 发布:medea软件 编辑:程序博客网 时间:2024/06/06 09:11
效果:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication3{ public partial class Form1 : Form { //存储选的值 public static string str = ""; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { TreeViewForm tvf = new TreeViewForm(); //窗体起始位置 tvf.Location=new Point(button1.Location.X,button1.Location.Y); tvf.Show(); } private void button2_Click(object sender, EventArgs e) { MessageBox.Show(str.Substring(0,str.Length-1)); } }}
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication3{ public partial class TreeViewForm : Form { public TreeViewForm() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //建立一个父节点 TreeNode tn1= treeView1.Nodes.Add("名称"); tn1.Tag = 0; //建立3个子节点 TreeNode ntn1 = new TreeNode("名称1"); ntn1.Tag = 1; TreeNode ntn2 = new TreeNode("名称2"); ntn2.Tag = 2; TreeNode ntn3 = new TreeNode("名称3"); ntn3.Tag = 3; //将这3个子节点添加到父节点中 tn1.Nodes.Add(ntn1); tn1.Nodes.Add(ntn2); tn1.Nodes.Add(ntn3); treeView1.CheckBoxes = true; treeView1.ExpandAll(); } /// <summary> /// 获得选中节点 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { List<TreeNode> listNodes = new List<TreeNode>(); foreach (TreeNode node in treeView1.Nodes) { FindCheckNode(node, listNodes); } this.Close(); } private void FindCheckNode(TreeNode node, List<TreeNode> listNodes) { if (node.Checked) { listNodes.Add(node); //Form1.str += node.Text+","; Form1.str += node.Tag + ","; } foreach (TreeNode childnode in node.Nodes) { FindCheckNode(childnode, listNodes); } } /// <summary> /// 选中取消节点 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void treeView1_AfterCheck(object sender, TreeViewEventArgs e) { if (e.Action == TreeViewAction.ByMouse) { //textBox1.Text = e.Node.Text; if (e.Node.Checked) { //取消节点选中状态之后,取消所有父节点的选中状态 setChildNodeCheckedState(e.Node, true); } else { //取消节点选中状态之后,取消所有父节点的选中状态 setChildNodeCheckedState(e.Node, false); //如果节点存在父节点,取消父节点的选中状态 if (e.Node.Parent != null) { setParentNodeCheckedState(e.Node, false); } } } } //取消节点选中状态之后,取消所有父节点的选中状态 private void setParentNodeCheckedState(TreeNode currNode, bool state) { TreeNode parentNode = currNode.Parent; parentNode.Checked = state; if (currNode.Parent.Parent != null) { setParentNodeCheckedState(currNode.Parent, state); } } //选中节点之后,选中节点的所有子节点 private void setChildNodeCheckedState(TreeNode currNode, bool state) { TreeNodeCollection nodes = currNode.Nodes; if (nodes.Count > 0) foreach (TreeNode tn in nodes) { tn.Checked = state; setChildNodeCheckedState(tn, state); } } }}
0 0
- Winform 中 treeview 多选
- Winform中TreeView的绑定
- winform中treeview的一些使用心得
- winForm中应用带CheckBox的TreeView
- WinForm中动态绑定TreeView数据
- C#中关于TreeView的WinForm编程
- winform中treeView的简单使用
- 一、WinForm中TreeView数据绑定
- WinForm 中TreeView 控件的使用实例
- winform中treeView使用通用类
- C#WinForm中TreeView默认展开设置
- winform中treeview绑定数据库的数
- c#中winform方式中给treeview节点加图片
- c# winform TreeView控件中实现拖拽的功能
- C#中Winform的Treeview节点"正在展开..."的效果
- WinForm TreeView中拖拽过程中显示图片 TreeViewExtend
- c# winform TreeView控件中实现拖拽的功能
- C#中Winform的Treeview节点"正在展开..."的效果
- PHP trigger_error() 函数
- hdoj 2036 改革春风吹满地
- POJ3411--Paid Roads
- Java线程(八):锁对象Lock-同步问题更完美的处理方式
- External Storage外部存储——SD卡
- Winform 中 treeview 多选
- Struts(13)验证框架
- sql用法
- JS动态修改页面EasyUI datebox不生效、EasyUI动态添加Class、EasyUI动态渲染解析解决方案
- 文章标题
- 转 9个基于java的搜索引擎框架
- JSONKit编译报错解决方法
- 程序猿会不会找UI设计师做女朋友?
- 定时器和多线程的区别和联系