欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

C# TreeNode的使用方法

发布时间:2023/12/18 61 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C# TreeNode的使用方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

                              


目录(?)[+]

  • C中Treeview判断选择的节点并执行不同的方法
  • C 怎么判断TreeView选中的是子节点 并且是属于哪个父节
  • 添加节点 [csharp] view plaincopy print?
  • 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 = new TreeNode("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 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 = new TreeNode("basil");//作为根节点。treeView1.Nodes.Add(t);TreeNode t1 = new TreeNode("basilone");t.Nodes.Add(t1);TreeNode t2 = new TreeNode("basiltwo");t.Nodes.Add(t2);}


    删除

    [csharp] view plaincopy print?
  • private void button1_Click(object sender, EventArgs e)  
  •       {  
  •           //点击该按钮的时候,会移除选中项  
  •           treeView1.Nodes.Remove(treeView1.SelectedNode);  
  •       }  
  • private void button1_Click(object sender, EventArgs e){//点击该按钮的时候,会移除选中项treeView1.Nodes.Remove(treeView1.SelectedNode);}


    修改

    [csharp] view plaincopy print?
  • private void button2_Click(object sender, EventArgs e)  
  •        {  
  •            //点击这个按钮的时候,可以修改选中项  
  •            //注意:在使用这个属性的时候,必须设置treeView1.LabelEdit =true,否则会提示错误。  
  •            treeView1.SelectedNode.BeginEdit();  
  •        }  
  • 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指的是当前选中节点的子节点集合。

    [csharp] view plaincopy print?
  • 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)  
  •               {  
  •              //调用相应的方法();  
  •                }  
  •           }  
  •       }  
  • 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属性来判断具体是哪个节点被选择,并执行相应的方法(这种方法效率高一些)

    [csharp] view plaincopy print?
  • 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")  
  •                       {  
  •                            //执行相应的方法();  
  •                       }  
  •                  }  
  •             }  
  •           
  • 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选中的是子节点 ?并且是属于哪个父节?

    [csharp] view plaincopy print?
  • TreeNode selNode = tree.SelectedNode;  
  • if (selNode == null)  
  • {  
  •     //防止空引用  
  •     return;  
  • }  
  • if (selNode.Parent != null)  
  • {  
  •     //为有父亲节点的,  
  •     TreeNode parentNode = selNode.Parent;//得到父亲节点                
  •     if (selNode.Nodes.Count == 0)  
  •     {  
  •         //为没有子节点,即选中的节点为叶子节点  
  •     }  
  • }  
  • TreeNode selNode = tree.SelectedNode; if (selNode == null) {//防止空引用return; } if (selNode.Parent != null) {//为有父亲节点的,TreeNode parentNode = selNode.Parent;//得到父亲节点 if (selNode.Nodes.Count == 0){//为没有子节点,即选中的节点为叶子节点} }
    C#.Net中TreeView控件右键选择节点问题处理

    [csharp] view plaincopy print?
  • 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;    
  •     }    
  • }   
  • 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; } }


    treeView默认 展开 [csharp] view plaincopy print?
  • treeView1.ExpandAll();  
  • treeView1.ExpandAll();
    默认选中TreeVIew中的一个节点

    [csharp] view plaincopy print?
  • //先找到你要设置选中的节点  
  • TreeNode tn = treeView1.Nodes[3];  
  • //把要设置的节点给SelectedNode  
  • this.treeView1.SelectedNode = tn;  
  • //this.TreeView1.SelectedNodeIndex="";  
  • //先找到你要设置选中的节点 TreeNode tn = treeView1.Nodes[3]; //把要设置的节点给SelectedNode this.treeView1.SelectedNode = tn; //this.TreeView1.SelectedNodeIndex="";
    TreeView,左键单击节点时可修改节点名称

    TreeView本身可支持左键修改名称 在初始化时设置: TreeView.LabelEdit = true; 这样应用程序的treeview生成以后就支持单击节点修改。</pre><pre id="best-content-1118048972" class="best-text mb-10" name="code" style="font-size: 14px; white-space: pre-wrap; word-wrap: break-word; color: rgb(54, 46, 43); line-height: 26px; background-color: rgb(255, 255, 255);">如果不想左键修改,可在treeView1_MouseDown中设置treeView1.LabelEdit = false; <pre id="best-content-1118048972" class="best-text mb-10" name="code" style="white-space: pre-wrap; word-wrap: break-word; color: rgb(54, 46, 43); line-height: 26px; background-color: rgb(255, 255, 255);"><strong><span style="font-size:18px;">右键菜单 重命名</span></strong>

    <pre name="code" class="csharp" style="font-size: 14px;">treeView1.LabelEdit = true; treeView.SelectedNode.BeginEdit();
    <strong><span style="font-size:18px;">TreeVIew清空</span></strong> [csharp] view plaincopy print?
  • TreeView.Nodes.Clear()  
  • TreeView.Nodes.Clear()

    总结

    以上是生活随笔为你收集整理的C# TreeNode的使用方法的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。