如何选择在C#中扩展的特定treenode

时间:2013-01-21 06:41:07

标签: c# treeview treenode

我正在使用treeview在db中显示数据。每个数据都有自己的代码和父代码(不是级别)。我的显示算法步骤就像这样

  • 步骤1:查找父代码为空的数据(根节点)
  • 步骤2:查找父代码为步骤1(步骤1的父代)的数据
  • 第3步:将1,2添加到treeView并显示
  • 步骤4:当点击节点时,找到选择了父代码的数据节点
  • 步骤5:将步骤4添加为所选代码的子节点
  

节点1

     

└node2 - 单击展开图标

     

└node3

     节点4 - 选定节点

在这种情况下,我只能检查选定的节点(node4)。因此,如果我在事件单击或展开/折叠中添加子节点代码,则代码将在选定节点(节点4)上运行,而不是在节点2上运行。

这就是我使用点击事件的原因。

我想检查点击了哪个节点的展开图标。在这个例子中,我想得到的节点是node2。

一种无知但简单的方法就是......保存所有节点的状态并在扩展之后进行比较。当节点数量很大时,这种方式会花费太长时间。

如果有其他简单方法可以选择 node2 ,我想知道如何找到它。

抱歉我的解释不好。

1 个答案:

答案 0 :(得分:2)

您可以使用树视图的OnBeforeExpand事件。该事件具有TreeViewCancelEventArgs参数,该参数携带要在其Node属性中展开的节点。