2013-08-01 136 views
0

我是C#的初學者,對TreeView有一個簡單的問題。如何添加孩子的孩子?

我想要做這樣的事情:

> -Root 
> -child1 
>  -child2 
>   -child3 
>     -.... 

我有這樣的:

child.Text = des[j]; 
root.Nodes.Add(child); 

,但它只是產生了這樣的事情:

> -Root 
>  -child1 

我想:

  • 有一個孩子的孩子。
  • 在for語句中創建10個TreeNode。

有了這樣不同的名稱:目錄root1,根-2,root3等

for (i = 0; i < 10; i++) 
{ 
    TreeNode root = new TreeNode(); 
} 

回答

1

您需要的樹節點添加到節點集合的孩子,而不是根本。

child.Text = des[j]; 

root.Nodes.Add(child); 

TreeNode NextChild = new TreeNode(); 
NextChild.Text = "something"; 
child.Nodes.Add(NextChild); 

對於第二個問題,您需要將這些treenodes存儲在某種數據結構中。如果你想命名每一個,哈希表將是一個很好的選擇。

Hashtable myHT = new Hashtable();

for (int i = 0; i < 10; i++) 

{ 

    TreeNode root = new TreeNode(); 
    myHT.Add("Root" + i, root); 

} 

然後,您可以訪問他們喜歡的,

TreeNode myRoot = (TreeNode)myHT["Root1"]; 

如果您習慣使用泛型可以使用System.Collections.Generic.Dictionary而不是爲一個通用版本。

0

你只需要跟蹤當前節點和子的插入。

  • i = 0,當前節點值是根節點。
  • i > 0,當前節點值是插入的最後一個子節點。

然後,你可以嘗試這樣的事情......

TreeNode current = new TreeNode(); // Root node. 
current.Text = string.Format("Root"); 
for (int i = 0; i < 10; i++) 
{ 
    TreeNode child = new TreeNode(); 
    child.Text = string.Format("Child: {0}", i); 
    current.Nodes.Add(child); 
    current = child; 
} 

這段代碼的結果將是:

    • 兒童:0
      • 小孩:1
        • 兒童:2