4

我遇到了树视图中节点索引的差异。这棵树只有 2 个层次结构,许多根节点和每个根节点下的许多节点。当我阅读时TTreeView.Selected.Index,我只得到根节点的索引,但是当我阅读TTreeView.Items[TTreeView.Selected.Index](循环迭代)时,我得到一个完全不同的树节点。

一个更具体的例子,假设我有这个数据:

  • 根 1
    • 项目 1.1
    • 项目 1.2
    • 项目 1.3
  • 根 2
    • 项目 2.1
    • 项目 2.2
    • 项目 2.3
  • 根 3
    • 项目 3.1
    • 项目 3.2
    • 项目 3.3

现在假设我选择“Root 3”并阅读TTreeView.Selected.Index,它将返回2。但是,当我阅读TTreeView.Items[2]它时,它会返回“Item 1.2”,因为它实际上是列表中的第三项。我选择的“Root 3”实际上是索引号 8。

读取当前选择的根节点的索引的正确方法是什么,所以我得到8而不是2

4

1 回答 1

9

TTreeNode.Index是相对于TTreeNode.ParentTTreeView.Items[]使用绝对索引,因此请TTreeNode.AbsoluteIndex改用。但是,Items[Selected.AbsoluteIndex]它是多余且低效的,因为它返回的返回值TTreeNode相同Selected

于 2013-01-05T20:43:19.807 回答