2016-09-29 75 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的标签属性这对每个节点都是独一无二的