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

C# TreeView, event when childnode is selected

我有一个关于 C# 中的 TreeView 及其节点的问题。

我目前正在尝试做的事情。我有一个 TreeView,旁边是一个 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 中显示所选内存的数据。但它总是只显示 "last" 一个。

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

干杯, 康斯蒂

使用标签属性,在标签属性中放置一个对于每个节点都是唯一的ID