当childnode被选中时发生事件

本文关键字:事件 childnode | 更新日期: 2023-09-27 18:09:19

我有一个关于c#中的TreeViews和它们的node的问题。

我当前尝试做的事情。我有一个TreeView和旁边的一个TableLayoutPanel。当我单击某个节点时,我想调用一个特定的方法并显示数据在TableLayoutPanel。显示数据工作正常,但我的问题是,我不知道如何确定什么节点/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

当childnode被选中时发生事件

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