本文主要介绍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)
{
//为没有子节点,即选中的节点为叶子节点
}
}
 
 
 
C#.Net中TreeView控件右键选择节点问题处理
 
  1. private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
  2. {
  3. if(e.Button==MouseButtons.Right)
  4. {
  5. TreeNode tn=treeView1.GetNodeAt(e.X,e.Y);
  6. if(tn!=null)treeView1.SelectedNode = tn;
  7. }
  8. }
 
 
 
 
treeView默认 展开
 
treeView1.ExpandAll();
 
默认选中TreeVIew中的一个节点
 

//先找到你要设置选中的节点

TreeNode tn = treeView1.Nodes[3];

//把要设置的节点给SelectedNode

this.treeView1.SelectedNode = tn;

//this.TreeView1.SelectedNodeIndex="";

 
 
 
 
TreeView,左键单击节点时可修改节点名称
 
TreeView本身可支持左键修改名称
在初始化时设置:
TreeView.LabelEdit = true;
这样应用程序的treeview生成以后就支持单击节点修改。

如果不想左键修改,可在treeView1_MouseDown中设置treeView1.LabelEdit = false; 

右键菜单 重命名
treeView1.LabelEdit = true;
treeView.SelectedNode.BeginEdit();



TreeVIew清空
TreeView.Nodes.Clear()

c#中treeview的使用方法(转 )的更多相关文章

  1. WPF中TreeView.BringIntoView方法的替代方案

    原文:WPF中TreeView.BringIntoView方法的替代方案 WPF中TreeView.BringIntoView方法的替代方案 周银辉 WPF中TreeView.BringIntoVie ...

  2. WPF中TreeView的使用

    因为项目中需要用到TreeView控件,由于是第一次在WPF中用到,因此事先在网上搜了很多关于数据绑定的方法介绍,个人经过实际应用,觉得WPF中的HierarchicalDataTemplate定义模 ...

  3. delphi中Treeview的使用介绍

    今天重点学习了TreeView的使用方法,基本的已经写了,现在主要想说的是如何显示数据库的资料,今天只是做了个较简单的例子,一个父节点下显示数据库中某个field的值.代码如下: procedure ...

  4. JavaScript中Math对象的方法介绍

    1.比较最值方法 比较最值有两种方法,max() 和 min() 方法. 1.1 max() 方法,比较一组数值中的最大值,返回最大值. var maxnum = Math.max(12,6,43,5 ...

  5. Android中锁定文件的方法

    androidSDK中并没有锁定文件相关的api. 但是android是基于linux操作系统的,linux比较底层,灵活性也更大,为了实现锁定文件的效果,大概有以下几种办法: 用chmod命令修改文 ...

  6. jQuery中的事件绑定方法

    在jQuery中,事件绑定方法大致有四种:bind(),live(), delegate(),和on(). 那么在工作中应该如何选择呢?首先要了解四种方法的区别和各自的特点. 在了解这些之前,首先要知 ...

  7. Eclipse中自动提示的方法参数都是arg0,arg1的解决方法

    Eclipse中自动提示的方法参数都是arg0,arg1,就不能根据参数名来推断参数的含义,非常不方便. 解决方法:Preferences->Java->Installed JREs,发现 ...

  8. Power BI官方视频(2) Power BI嵌入到应用中的3种方法

    今天给大家介绍3种将Power BI嵌入到应用中的方法. 本文原文地址:Power BI官方视频(2) Power BI嵌入到应用中的3种方法 Power BI系列文章地址:微软Power BI技术文 ...

  9. JQuery中each()的使用方法说明

    JQuery中each()的使用方法说明 对于jQuery对象,只是把each方法简单的进行了委托:把jQuery对象作为第一个参数传递给jQuery的each方法.换句话说:jQuery提供的eac ...

随机推荐

  1. 深入理解js中的apply、call、bind

    概述 js中的apply,call都是为了改变某个函数运行时的上下文环境而存在的,即改变函数内部的this指向. apply() apply 方法传入两个参数:一个是作为函数上下文的对象,另外一个是作 ...

  2. selenium 定位input输入框下的选择项

    今天的问题与下图中的类似 这是一个input型输入框,当我点击或输入值时,输入框下方会显示选择项帮助快速输入,代码如下: <input class="v-input some" ...

  3. ajax的跨域请求

    同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上的 ...

  4. cmd 更改计算机名

    bat  更改计算机名 不用重启电脑就生效^_^ @Echo off Color 0A title --更改计算机名 :A cls echo. echo. [0]退出 echo. echo. 不用重启 ...

  5. codeblocks+mbedtls库配置

    网上都没有找到window下mbedtls的相关配置,或许是太简单了.希望可以帮助那些像我这样的小白一枚. 下载 github的下载:https://github.com/ARMmbed/mbedtl ...

  6. Undefined index: HTTP_RAW_POST_DATA的解决办法

    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; 替换为 $postStr = isset($GLOBALS['HTTP_RAW_POST_DA ...

  7. LNMP1.3 一键配置环境,简单方便

    系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian Linux系统 需要3GB以上硬盘剩余空间 需要128MB以上内存(如果为128MB的小内存VPS,Xe ...

  8. Web前端学习——CSS

    一.CSS简介CSS全称cascading style sheeding,层叠样式列表.CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化.二.CSS组成1.选择器(1) ...

  9. 使用TensorFlow实现DNN

    这一节使用TF实现一个多层神经网络模型来对MNIST数据集进行分类,这里我们设计一个含有两个隐藏层的神经网络,在输出部分使用softmax对结果进行预测. 使用高级API实现多层神经网络 这里我们使用 ...

  10. Oracle在本地调试成功读取数据,但是把代码放到服务器读不出数据的解决方法。

    用MVC EF框架开发项目,数据库用的是Oracle,本地调试的时候一切正常,但是把代码编译之后放到服务器就会读不出数据. 原因:本地调试环境与服务器环境不一致. 办法:在服务器上装ODT.NET组件 ...