2010-12-08 7 views
0

트리 추가 메소드에 노드를 추가 할 수 있습니다. 그러나 특정 하위 노드에 노드를 추가하려고합니다. 예를 들어 노드가특정 하위 노드에 노드 추가

|___node0 
|___node1  
|  |___node3 
|  |___node4 
|   |___node5 
|___node2 

가 어떻게이 작업을 수행 할 수있는 일에 Node5에 추가 하시겠습니까? 감사합니다. .

답변

1

기본 재귀 트리 노드 검색 자 아래와 같이의 상단에, 그 콜렉션에 새로운 아이를 추가 내 머리. 키로 검색 할 필요가있는 경우 weismat의 대답이 가장 쉽습니다. 그러나 노드의 데이터로 검색해야하는 경우 이름 검색을 바꿀 수있는 것으로 바꿀 수 있으므로이 솔루션을 고려해야합니다.

private TreeNode FindNode(TreeNode root, String name) 
{ 
    foreach (TreeNode node in root.Nodes) 
    { 
     if (node.Nodes.Count > 0) 
      return FindNode(root, name); 
     if (node.Name == name) 
      return node; 
    } 
    return null; 
} 
+0

나는이 방법을 어떻게 사용 하는가? 그리고이 방법이 내게주는 것? 세부 사항을 알려주십시오. 감사합니다. – Tavousi

+1

TreeNode node = FindNode (treeView1.Nodes [0], "node5") –

4
TreeNode[] tn = treeView.Nodes[0].Nodes.Find(search.Text, true); 
if (tn.Count>0) 
    tn[0].Add(nod); 
else 
    //handle node not found 
3

는 자식 노드의 참조가있는 경우, 당신은 단순히 노드 컬렉션에 액세스 할 수 있으며

node5.Nodes.Add(New TreeNode("temp")); 
0

윌리엄은 옳았지만 방법은 다음과 같아야합니다

private TreeNode FindNode(TreeNode root, String name) 
     { 
      foreach (TreeNode node in root.Nodes) 
      { 
       if (node.Name == name) 
        return node; 
       else 
       { 
        if (node.Nodes.Count > 0) 
         return FindNode(node, name); 
       } 
      } 
      return null; 
     } 

이를 테스트하고 잘 작동,

건배!

관련 문제