2011-01-05 190 views
0

我有一類叫做持有人(holder.cs)包含以下內容:樹視圖添加節點問題

string name; 
    List<String> overView; 

兩者都有get和set accesors。

現在的問題是獲取所有overView項目的樹視圖作爲父節點,列出屬於它下面的所有名稱。

因此,在我的treeviewForm.cs我有以下目錄以正確列出overView項目。 通過文本框輸入名稱,並且overView只是4個項目,可能或不會通過選擇複選框來選擇。

但我不知道我可以如何將名稱添加到overView節點。因爲我似乎無法連接treeViewList.Nodes.Add(list[i].overView[j]後面的名字。

listForm.cs類:

List<Holder> list; 

    private void ShowOverviewWithName() 
    { 
     treeViewList.Nodes.Clear(); 

     for (int i=0; i < list.Count; i++) 
     { 
      for (int j=0; j < list[i].overView.Count; j++) 
      { 
       //adds the overView name 
       treeViewList.Nodes.Add(list[i].overView[j]); 
      } 
     } 

     treeViewList.ExpandAll(); 
    } 

所以basicly樹狀視圖顯示我期待的是:

Overview1 
    name1 
    name2 
    name3 
Overview2 
    name7 
    anyothernamethatbelongshere... 

與屬於概述了所有名稱。

謝謝。

回答

0

我不知道你的問題......

但假設有這樣的代碼:

var h1 = new Holder{ name = "name1", overView = new List<string>{ "Overview1", "Overview2" } }; 
var h2 = new Holder{ name = "name2", overView = new List<string>{ "Overview1" } }; 
var h3 = new Holder{ name = "name3", overView = new List<string>{ "Overview1" } }; 
var h4 = new Holder{ name = "name4", overView = new List<string>{ "Overview2" } }; 

List<Holder> list = new List<Holder> { h1, h2, h3, h4 }; 

treeViewList.Nodes.Clear(); 

for (int i = 0; i < list.Count; i++) 
{ 
    for (int j = 0; j < list[i].overView.Count; j++) 
    { 
     string overviewName = list[i].overView[j]; 

     //adds the overView name if doesn't exist yet 
     TreeNode parent; 
     if (!treeViewList.Nodes.ContainsKey(overviewName)) 
      parent = treeViewList.Nodes.Add(overviewName,overviewName); 
     else 
      parent = treeViewList.Nodes[overviewName]; 

     // adds the name under the overView 
     parent.Nodes.Add(list[i].name); 
    } 
} 

treeViewList.ExpandAll(); 

你會得到下面的樹:

alt text

+0

謝謝,這解決了我的問題! – KevKelders 2011-01-05 11:54:39

0

您需要:

  1. 創建頂級「Overviewx」節點
  2. 子節點添加到您剛剛創建
  3. 頂級節點添加到樹
  4. 頂級節點
  5. 對所有頂級節點重複。

希望這會有所幫助!

+0

問題實際上是將子節點(名稱)添加到父節點概述中。概述已經顯示,但不確定用什麼結構來添加這些名稱。 – KevKelders 2011-01-05 11:00:05