2010-09-23 116 views
3

我有一個樹根,最初有一個根節點作爲根。如果我右鍵單擊根節點,我將有一個上下文菜單顯示一些選項作爲新和其他如果我選擇新我將向根節點添加一個子節點。如果我再次右鍵單擊根節點,如果根有子節點,我想清除所有子節點並添加一個新的子節點我該如何做到這一點如何檢查樹視圖根節點是否存在子節點

回答

1

畢竟最終的答案如下

if (tvwACH.HitTest(location).Node.Nodes.Count > 0 && tvwACH.SelectedNode.Parent == null) 
     { 
      foreach (TreeNode node in tvwACH.Nodes) 
      { 
       node.Nodes.Clear(); 
      } 
    } 
+0

我忘了這個節點數...:D再次感謝@Dotnet – gumuruh 2016-09-07 01:57:56

6

TreeNode.Nodes給你一個所有子節點的列表你正在看的節點。

然後,您可以在該集合上調用Clear來刪除所有的子節點。

+0

但我怎麼能檢查子節點存在的根,我不能得到它 – Dotnet 2010-09-23 12:02:51

+0

@dorababu:您可以使用'MouseDown'事件中的位置和'HitTest'調用。看到我的回答這個問題的代碼來做到這一點:http://stackoverflow.com/questions/3760256/changing-the-node-value-of-treeview/3760405#3760405 – 2010-09-23 12:26:02

+0

其實我的問題是不同的我只問這個問題這工作,但我不能得到一個樹形視圖的孩子數 – Dotnet 2010-09-23 12:29:14

0

'right click'處理程序,假設你用鼠標點擊,您可以使用事件參數TreeNodeMouseClickEventArgs得到當前節點...

void tv_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) 
    { 
     if (e.Button == MouseButtons.Right) 
     { 
     TreeNode selectedNode = e.Node; 
     } 
    } 
0

您可以檢查TreeNode.Nodes財產。如果計數大於零,那麼你有子節點,否則不

-1
   foreach (TreeNode node in treeview.Nodes) 
        { 

         if (node.ChildNodes.Count != 0) 
         { 

          //Node exists 

         } 
         else 
         { 

          //Node doesn't exists 

         } 
        } 
相關問題