c#中treeview的使用方法(转 )
本文主要介绍treeView控件中,添加,修改、删除节点的操作,
首先当窗体加载的时候,我们添加上图中所示的节点。
当点击“Delete the Selected”按钮时,被选中的节点将被删除。
当点击“Edit the Selected”按钮式,被选中的节点变成修改状态,此时我们可以对其修改。
其代码如下:
private void Form1_Load(object sender, EventArgs e)
{
treeView1.LabelEdit = true;//可编辑状态。
//添加一个节点,这个结点是根节点。
TreeNode node = new TreeNode();
node.Text = "hope";
treeView1.Nodes.Add(node);
TreeNode node1 = new TreeNode();
node1.Text = "hopeone";
TreeNode node11 = new TreeNode();
node11.Text ="hopeoneone";
TreeNode node2 = new TreeNode();
node2.Text = "hopetwo";
node1.Nodes.Add(node11);//在node1下面在添加一个结点。
node.Nodes.Add(node1);//node下的两个子节点。
node.Nodes.Add(node2);
TreeNode t = newTreeNode("basil");//作为根节点。
treeView1.Nodes.Add(t);
TreeNode t1 = new TreeNode("basilone");
t.Nodes.Add(t1);
TreeNode t2 = new TreeNode("basiltwo");
t.Nodes.Add(t2);
}
private void button1_Click(object sender, EventArgs e)
{//点击该按钮的时候,会移除选中项
treeView1.Nodes.Remove(treeView1.SelectedNode);
}
private void button2_Click(object sender, EventArgs e)
{//点击这个按钮的时候,可以修改选中项
注意:在使用这个属性的时候,必须设置treeView1.LabelEdit =true,否则会提示错误。
treeView1.SelectedNode.BeginEdit();
}
C#中Treeview判断选择的节点并执行不同的方法
关于控件Treeview,如何在点击不同的节点(包括父节点和父节点下的子节点)触发不同的事件,执行相应的方法?
方法1:
treeView1_AfterSelect事件就是treeView1中节点被选择触发的事件,e.Node指的是当前选中的节点,e.Node.Nodes指的是当前选中节点的子节点集合。
例如:
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Action == TreeViewAction.ByMouse)
{
if (e.Node.Parent != null && e.Node.Parent.Index == 0)//当前选中的节点有父节点,并且该父节点在相同级别的父节点中排行第一。
{ if(e.Node.Index==0)//当前选中节点在所有的兄弟节点中排第 一 调用相应的方法();
}
if(e.Node.Parent==null&&e.Node.Index==4)//表示当前节点没有父节点,并且在兄弟节点中排行第五(由零开始索引)
{
调用相应的方法();
}
}
}
方法二:通过节点的Name属性来判断具体是哪个节点被选择,并执行相应的方法(这种方法效率高一些)
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Action == TreeViewAction.ByMouse)
{
if(e.Node.Nodes.Count==0)//说明当前选中节点没有子节点
if(e.Node.name="aaa")
{
执行相应的方法();
}
else if(e.Node.Name="bbb")
{
执行相应的方法();
}
}
}
C# 怎么判断TreeView选中的是子节点 ?并且是属于哪个父节点?
TreeNode selNode = tree.SelectedNode;
if (selNode == null)
{
//防止空引用
return;
}
if (selNode.Parent != null)
{
//为有父亲节点的,
TreeNode parentNode = selNode.Parent;//得到父亲节点 if (selNode.Nodes.Count == 0)
{
//为没有子节点,即选中的节点为叶子节点
}
}
- private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
- {
- if(e.Button==MouseButtons.Right)
- {
- TreeNode tn=treeView1.GetNodeAt(e.X,e.Y);
- if(tn!=null)treeView1.SelectedNode = tn;
- }
- }
treeView1.ExpandAll();
//先找到你要设置选中的节点
TreeNode tn = treeView1.Nodes[3];
//把要设置的节点给SelectedNode
this.treeView1.SelectedNode = tn;
//this.TreeView1.SelectedNodeIndex="";
TreeView本身可支持左键修改名称
在初始化时设置:
TreeView.LabelEdit = true;
这样应用程序的treeview生成以后就支持单击节点修改。
如果不想左键修改,可在treeView1_MouseDown中设置treeView1.LabelEdit = false;
右键菜单 重命名
treeView1.LabelEdit = true;
treeView.SelectedNode.BeginEdit();
TreeVIew清空
TreeView.Nodes.Clear()
c#中treeview的使用方法(转 )的更多相关文章
- WPF中TreeView.BringIntoView方法的替代方案
原文:WPF中TreeView.BringIntoView方法的替代方案 WPF中TreeView.BringIntoView方法的替代方案 周银辉 WPF中TreeView.BringIntoVie ...
- WPF中TreeView的使用
因为项目中需要用到TreeView控件,由于是第一次在WPF中用到,因此事先在网上搜了很多关于数据绑定的方法介绍,个人经过实际应用,觉得WPF中的HierarchicalDataTemplate定义模 ...
- delphi中Treeview的使用介绍
今天重点学习了TreeView的使用方法,基本的已经写了,现在主要想说的是如何显示数据库的资料,今天只是做了个较简单的例子,一个父节点下显示数据库中某个field的值.代码如下: procedure ...
- JavaScript中Math对象的方法介绍
1.比较最值方法 比较最值有两种方法,max() 和 min() 方法. 1.1 max() 方法,比较一组数值中的最大值,返回最大值. var maxnum = Math.max(12,6,43,5 ...
- Android中锁定文件的方法
androidSDK中并没有锁定文件相关的api. 但是android是基于linux操作系统的,linux比较底层,灵活性也更大,为了实现锁定文件的效果,大概有以下几种办法: 用chmod命令修改文 ...
- jQuery中的事件绑定方法
在jQuery中,事件绑定方法大致有四种:bind(),live(), delegate(),和on(). 那么在工作中应该如何选择呢?首先要了解四种方法的区别和各自的特点. 在了解这些之前,首先要知 ...
- Eclipse中自动提示的方法参数都是arg0,arg1的解决方法
Eclipse中自动提示的方法参数都是arg0,arg1,就不能根据参数名来推断参数的含义,非常不方便. 解决方法:Preferences->Java->Installed JREs,发现 ...
- Power BI官方视频(2) Power BI嵌入到应用中的3种方法
今天给大家介绍3种将Power BI嵌入到应用中的方法. 本文原文地址:Power BI官方视频(2) Power BI嵌入到应用中的3种方法 Power BI系列文章地址:微软Power BI技术文 ...
- JQuery中each()的使用方法说明
JQuery中each()的使用方法说明 对于jQuery对象,只是把each方法简单的进行了委托:把jQuery对象作为第一个参数传递给jQuery的each方法.换句话说:jQuery提供的eac ...
随机推荐
- Python 函数返回值
本章详细介绍 返回值: 0x 00 返回值简介 0x 01 指定返回值与隐含返回值 0x 02 return 语句位置与多条 return 语句 0x 03 返回值类型 0x 04 函数嵌套 0x 0 ...
- php 7.2 一些注意事项.
<?php $b = array(); each($b); // Deprecated: The each() function is deprecated. This message will ...
- Mybatis分页插件PageHelper简单使用
一个好的讲解mybatis的博客地址http://www.jianshu.com/nb/5226994 引言 对于使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句 ...
- C#爬虫系列(二)——食品安全国家标准数据检索平台
上篇对“国家标准全文公开系统”的国标进行抓取,本篇对食品领域的标准公开系统“食品安全国家标准数据检索平台”进行抓取. 平台地址:http://bz.cfsa.net.cn/db 一.标准列表 第一步还 ...
- 深入理解javascript函数进阶系列第一篇——高阶函数
前面的话 前面的函数系列中介绍了函数的基础用法.从本文开始,将介绍javascript函数进阶系列,本文将详细介绍高阶函数 定义 高阶函数(higher-order function)指操作函数的函数 ...
- Hibernate框架进阶(上篇)
导读 前面一片文章介绍了Hibernate框架的入门,主要是讲解Hibernate的环境搭建和简单测试,有兴趣的童鞋出门左转.本文在入门的基础上进行Hibernate的进阶讲解,分为上中下三篇,本篇为 ...
- 【下一代核心技术DevOps】:(一)容器服务的Rancher选型
为什么说是下一代核心技术 其实经过互联网的多次变革说起,早期的C/S架构,到后来的B/S架构,一直到现在最普遍的M/S架构,他们的背后都是技术不断的优化改进,以适应促进IT技术的发展 整体而言在过去1 ...
- Prism for WPF初探(构建简单的模块化开发框架)
先简单的介绍一下Prism框架,引用微软官方的解释: Prism provides guidance to help you more easily design and build, flexibl ...
- java web学习笔记 jstl
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53311722 冷血之心的博客) 一.JSTL标签介绍 1.什么是 ...
- 将PDF文件中按页截取,并以流的形势返回给客户端
#需要用到pyPdf库 from pyPdf import PdfFileWriter,PdfFileReader from django.http import HttpResponse try: ...