c#中treeview的使用方法(轉 )


本文主要介紹treeView控件中,添加,修改、刪除節點的操作,

首先當窗體加載的時候,我們添加上圖中所示的節點。

當點擊“Delete the Selected”按鈕時,被選中的節點將被刪除。

當點擊“Edit the Selected”按鈕式,被選中的節點變成修改狀態,此時我們可以對其修改。

c中treeview的使用方法 - Hope - Hope的博客

其代碼如下:

       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. }  
 
 
 
 
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()
 
        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM