2

我正在尝试遍历 DevExpress.XtraTreeList.TreeList 的节点,但它不起作用。

基本上我所拥有的只是我要查找的节点的标题和值。有没有一种简单的方法可以找到它。找到它之后,我只是将焦点移到新节点上,如果我有正确的索引,我已经知道如何做到这一点。

谢谢

4

2 回答 2

1

此类任务应使用节点迭代器来实现。请参考这个例子

在这方面。我们的文档中描述了 NodesIterator:

节点迭代器

于 2010-09-15T15:08:50.413 回答
0

我最终使用了 a Queue,然后使用当前节点的tree.nodes.

Dim text As String = "looking for this"
Dim myQueue As New Queue
For i As Integer = 0 To tree.Nodes.Count - 1
    If tree.Nodes(i).GetDisplayText("name").Equals(text ) Then
          tree.SetFocusedNode(tree.Nodes(i))
          Exit Sub
    Else
          If tree.Nodes(i).HasChildren Then
               myQueue.Enqueue(tree.Nodes(i))
          End If
    End If
Next

While myQueue.Count > 0
    Dim tempNode As DevExpress.XtraTreeList.Nodes.TreeListNode = CType(myQueue.Dequeue, DevExpress.XtraTreeList.Nodes.TreeListNode)
    For i As Integer = 0 To tempNode.Nodes.Count - 1
          If tempNode.Nodes(i).GetDisplayText("name").Equals(e.Button.Caption) Then
              tree.SetFocusedNode(tempNode.Nodes(i))
              Exit Sub
          Else
              If tempNode.Nodes(i).HasChildren Then
                   myQueue.Enqueue(tempNode.Nodes(i))
              End If
          End If
    Next
End While
于 2010-09-16T14:13:22.157 回答