C# TreeView
增加节点
TreeNode node1 = new TreeNode();//添加一个节点,这个结点是根节点1。node1.Text = "1";treeView1.Nodes.Add(node1);TreeNode node1_1 = new TreeNode();node1_1.Text = "1.1";node1.Nodes.Add(node1_1);//在node1下面再添加一个结点1.1。TreeNode node1_1_1 = new TreeNode();node1_1_1.Text = "1.1.1";node1_1.Nodes.Add(node1_1_1);//在node1下面再添加一个结点1.1。TreeNode node1_2 = new TreeNode();node1_2.Text = "1.2";node1.Nodes.Add(node1_2);//在node1下面再添加一个结点1.2。TreeNode node2 = new TreeNode();//添加一个节点,这个结点是根节点2。node2.Text = "2";treeView1.Nodes.Add(node2);
如图:
右键单击Node显示快捷菜单
1、增加contexMenuStrip控件,并编辑控件内容。
2、为treeView控件增加属性。
treeView1.ContextMenuStrip = contextMenuStrip1;
3、增加treeView右键单击选中事件,目的是右键单击某节点时,节点高亮被选中。
private void treeView1_MouseClick(object sender, MouseEventArgs e){if (e.Button == MouseButtons.Right){treeView1.Focus();treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y);}}
如图:
右键删除Node
1.在contexMenuStrip控件中编辑“删除该级节点”点击事件。
2.在事件中删除该级节点及包含节点。
private void toolStripMenuItem2_Click(object sender, EventArgs e){treeView1.SelectedNode.Remove();}
3.存在问题是:
增加右键删除这种功能时不要将所有节点的“右键快捷菜单”属性赋予同样的事件操作,容易全部删去。多搞几个contexMenuStrip就好,或者代码另加判断,判断是否为不可被删除的Node。具体情况具体分析。
查找指定Node
private TreeNode FindTreeNode(string str, TreeNode tnParent){if (tnParent == null)return null;if (tnParent.Text == str)return tnParent;TreeNode tnRet = null;foreach (TreeNode tn in tnParent.Nodes){tnRet = FindTreeNode(str, tn);if (tnRet != null)break;}return tnRet;}
在TreeView查找某一节点,通常有两种方法,一种是递归的,一种不是递归,但都是深度优先算法。其中,非递归方法效率高些,而递归算法要简洁一些。尚不了解,后续跟进。(此语出自:http://blog.csdn.net/minsenwu/article/details/7366141)
C# TreeView相关推荐
- SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题...
转:http://blog.csdn.net/miragesky2049/article/details/7204882 SharePoint2010沙盒解决方案基础开发--关于TreeView树形控 ...
- treeview 保持选中状态
发现当treeview控件失去焦点的时候,会丢失选中状态的指示(条目的蓝色背景).如果想要保持,只要设置treeview的一个属性即可: this.treeView1.HideSelection = ...
- 遍历Treeview每个节点并初始化(C#)
搞了好久,哎,C#的一些控件用起来还没习惯,所以折腾啊. TreeView的形成,必然要初始化,数据记录是从数据库中取得的,那么要先取再遍历.介绍下心得吧. 首先,数据预期显示结果如下 其次,数据库结 ...
- 自己开发开源jquery插件--给jquery.treeview加上checkbox
很多时候需要把树状的数据显示除来,比如分类,中国省份.城市信息,等,因此这方面的javascript插件也有很多.比如性能优异的jquery.treeview和国人开发的功能强大的zTree. 我最近 ...
- dev treeview控件_在Winform开发框架中使用DevExpress的TreeList和TreeListLookupEdit控件
DevExpress提供的树形列表控件TreeList和树形下拉列表控件TreeListLookupEdit都是非常强大的一个控件,它和我们传统Winform的TreeView控件使用上有所不同,我一 ...
- ASP.Net中的TreeView控件中对节点的上移和下移操作
Web中的TreeView中的没有PreNode和NextNode属性. 但它的集合属性中有一个IndexOf属性,从而能够找到它的前一个节点知后一个节点. TreeView中要么只有一个根节点:要么 ...
- 详解Silverlight Treeview的HierarchicalDataTemplate使用
在Silverlight项目中,Treeview控件是比较常用的表示层次或者等级的控件,该控件可以非常清晰的显示数据之间的隶属关系.对于Treeview控件的基本使用已经有很多文章介绍,这里我想讲解一 ...
- jquery treeview 树形插件
jquery treeview 插件参数说明 treeview开源地址:https://github.com/jzaefferer/jquery-treeview 1.animated:String ...
- 在winform中从外部拖动节点到树形结构(treeview和listview相互拖动)(一)
最近一个项目要用到从listview向treeview拖动item,达到从外部拖动图标成为树形结构的一部分,通过查阅资料总结了一些实现方式,分享给大家.这是winform中的例子. 在进行拖放操作之前 ...
- ASP.NET 2.0实现自带TreeView的客户端连带选择
关于TreeView连带选择的功能估计很多人都写过,如果用服务器端事件来写比较方便,但是多了一层服务器端交互,系统易用性也上不太好,所以还是把这些功能的处理放在客户端会好一些. 功能说明: A.选中某 ...
最新文章
- linux selenium_每天进步一点点 selenium+python
- office2016打开提示不能加载VBE6EXT.OLB解决方法
- matlab中的转义字符使用和说明
- linux驱动导出文件属性,将Linux配置文件和设置备份到USB闪存驱动器的方法
- java 配置文件 路径问题_java 配置文件的路径问题
- 2015.8.3 Java
- 详细讲解怎样做数据仓库需求分析
- qt文件怎么设置全局变量_QT编程之——使用全局变量
- 如何设置照片的高度没有滚条_10分钟看懂Photoshop 照片修饰(照片修复工具)
- 蛮力法求最大字段和时间复杂度_中文分词算法之--最大匹配法
- Matlab 批量读取,处理及保存图片
- 只需几步教你学会域名的使用方法
- 树莓派Python实现相机控制,定时与画面变化捕捉拍照
- uniapp 静态图片不显示
- 微博app打开微信小程序的方法
- AutoSAR入门到精通讲解 (AuroSAR-CP描述) 1.1 AutoSAR-CP简介
- GEE-Scholars MODIS地表温度LST时间变化趋势
- 比较不同利率下的贷款
- 总有人会偷看你的朋友圈
- 畅聊微信支付遇到的坑