0

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

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

节点1

└ node2 - 点击展开图标

  └ 节点3 

└ node4 - 选择的节点

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

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

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

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

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

对不起,我的解释很糟糕。

4

1 回答 1

2

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

于 2013-01-21T06:50:19.560 回答