2016-09-29 76 views
0

我有一個關於TreeView及其在C#中的節點的問題。C#TreeView,選擇childnode時的事件

我目前正在嘗試做什麼。我有一個TreeView,並在它旁邊有一個TableLayoutPanel。當我點擊節點時,我想調用特定的方法並在TableLayoutPanel中顯示數據 。顯示數據工作正常,但我的問題是,我不知道如何確定如何確定已選擇Node/ChildNode。

我有一個TreeView,看起來像這樣

Root1 
    R1Child1 
    R1Child2 
Root2 
    R2Child1 
    R2Child2 
Root3 
    R3Child1 
    R3Child2 

我現在處理這個由AfterSelect方法,只是檢查的文本選擇的節點。

private void treeHardware_AfterSelect(object sender, TreeViewEventArgs e) 
{ 

     if (e.Node.Text == SysInfo.CPU.Name) 
     { 
      deleteRows(); 
      initFixedRows(); 
      updateTableCPU(); 
     } 
     else if (e.Node.Text == ramNameIdent) 
     { 
      deleteRows(); 
      initFixedRows(); 
      updateTableRAM(e.Node.Index); 
     } 
     else if (e.Node.Text == "Memory") 
     { 
      deleteRows(); 
      initFixedRows(); 
      loadRAMDetails(0); 
      loadRAMOverview(); 
     } 
     else if(e.Node.Text == "Mainboard") 
     { 
      deleteRows(); 
      initFixedRows(); 
      updateTableMainboard(); 
     } 
     else 
     { 
      Console.WriteLine("ERROR"); 
     } 
} 

在我看來這是檢查節點已經被點擊了什麼非常不切實際的方法,因爲它只是檢查字符串,而且它不是非常有效的..

下一個問題,對於內存節點。我顯示所有安裝的物理存儲器並將它們中的每一個添加爲一個ChildNode。現在,當我點擊其中一個時,它應該在我的TableLayoutPanel中顯示所選內存的數據。但它總是隻顯示「最後」一個。

希望你的帽子明白我的意思...... 如果沒有,只是要求更多的信息:-)

乾杯, Consti

+0

爲什麼你不使用標籤屬性?把一個ID放在每個節點唯一的標籤屬性中。關於「Next Problem」我不明白 – 2016-09-29 12:24:05

+0

@Shoushou,謝謝你的解決我的問題!我正在努力,謝謝! –

+0

非常好!我會把它作爲答案,所以請接受它!享受編程! – 2016-09-29 13:34:35

回答

0

使用標籤屬性,把一個ID的標籤屬性這對每個節點都是獨一無二的