C#TreeView,选择子节点时的事件

时间:2016-09-29 09:08:22

标签: c# treeview treenode child-nodes

我对C#中的TreeView及其节点有疑问。

我目前正在尝试做什么。我有一个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");
        }
}

在我的观点中,这是检查Node被点击的非常不切实际的方法,因为它只检查字符串,并且它不是非常有效..

下一个问题,对于内存节点。我显示所有已安装的物理内存并将其中的每一个添加为ChildNode。现在,当我单击其中一个时,它应该在TableLayoutPanel中显示所选内存的数据。但它总是只显示" last"之一。

希望你了解我的意思...... 如果没有,请询​​问更多信息: - )

干杯, Consti

1 个答案:

答案 0 :(得分:0)

使用Tag属性,在每个节点唯一的tag属性中放置一个ID