【发布时间】:2016-09-29 09:08:21
【问题描述】:
我有一个关于 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");
}
}
在我看来,这是一种非常不切实际的检查节点被点击的方法,因为它只是检查字符串,而且不是很有效..
下一个问题,针对内存节点。我显示所有已安装的物理内存并将它们中的每一个添加为子节点。现在,当我单击其中一个时,它应该在我的 TableLayoutPanel 中显示所选内存的数据。但它总是只显示“最后一个”。
希望你明白我的意思... 如果没有,请询问更多信息:-)
干杯, 康斯蒂
【问题讨论】:
-
为什么你不使用标签属性?在每个节点唯一的标签属性中放置一个 ID。关于“下一个问题”我不明白
-
@Shoushou ,谢谢,这将解决我的问题!我正在努力谢谢!!!
-
非常好!我会把它作为答案,所以请接受它!享受编程!
标签: c# treeview treenode child-nodes