如何选择在c#中展开的特定树节点

本文关键字:树节点 何选择 选择 | 更新日期: 2023-09-27 17:54:55

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

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

node1

node2 -点击扩展图标

node3

选择节点

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

这就是为什么我使用click event。

我想检查哪个节点的展开图标被点击了。在本例中,我想获取的节点是node2。

一个无知但简单的方法是……保存所有节点的状态,并将展开前与展开后进行比较。当节点数较大时,这种方法将花费很长时间。

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

对不起,我解释得不好。

如何选择在c#中展开的特定树节点

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