天天看點

c#中treeview的使用方法

這是一篇關于c#中treeview的使用方法,供大家參考,

http://blog.sina.com.cn/s/blog_149e9d2ec0102vujg.html

c#中treeview的使用方法  

2009-05-0809:25:00|  分類:c#|  标簽:|字号大中小 訂閱

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

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

當點選“Delete the Selected”按鈕時,被選中的節點将被删除。

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

c#中treeview的使用方法

其代碼如下:

       privatevoid Form1_Load(object sender, EventArgs e)

       {

           treeView1.LabelEdit= true;//可編輯狀态。

//添加一個節點,這個結點是根節點。

           TreeNodenode = new TreeNode();

           node.Text= "hope";

           treeView1.Nodes.Add(node);

           TreeNodenode1 = new TreeNode();

           node1.Text= "hopeone";

           TreeNodenode11 = new TreeNode();

           node11.Text="hopeoneone";          

           TreeNodenode2 = new TreeNode();

           node2.Text= "hopetwo";

           node1.Nodes.Add(node11);//在node1下面在添加一個結點。

           node.Nodes.Add(node1);//node下的兩個子節點。

           node.Nodes.Add(node2);

           TreeNodet = newTreeNode("basil");//作為根節點。

           treeView1.Nodes.Add(t);

           TreeNodet1 = new TreeNode("basilone");

           t.Nodes.Add(t1);

           TreeNodet2 = new TreeNode("basiltwo");

           t.Nodes.Add(t2);

       }

       privatevoid button1_Click(object sender, EventArgs e)

        {//點選該按鈕的時候,會移除選中項

           treeView1.Nodes.Remove(treeView1.SelectedNode);

       }

       privatevoid button2_Click(object sender, EventArgs e)

       {//點選這個按鈕的時候,可以修改選中項

注意:在使用這個屬性的時候,必須設定treeView1.LabelEdit=true,否則會提示錯誤。

           treeView1.SelectedNode.BeginEdit();

       }

C#中Treeview判斷選擇的節點并執行不同的方法

關于控件Treeview,如何在點選不同的節點(包括父節點和父節點下的子節點)觸發不同的事件,執行相應的方法?

方法1:

treeView1_AfterSelect事件就是treeView1中節點被選擇觸發的事件,e.Node指的是目前選中的節點,e.Node.Nodes指的是目前選中節點的子節點集合。

例如:

        privatevoid treeView1_AfterSelect(object sender, TreeViewEventArgse)

        {

            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屬性來判斷具體是哪個節點被選擇,并執行相應的方法(這種方法效率高一些)

      privatevoid treeView1_AfterSelect(object sender, TreeViewEventArgse)

         {

              if(e.Action == TreeViewAction.ByMouse)

            {

              if(e.Node.Nodes.Count==0)//說明目前選中節點沒有子節點

               if(e.Node.name="aaa")

                  {

                       執行相應的方法();

                  }

              elseif(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();