如何遍历DevExpress.XtraTreeList.TreeList的节点

时间:2010-09-14 22:10:34

标签: visual-studio-2008 devexpress xtratreelist

我正在尝试遍历DevExpress.XtraTreeList.TreeList的节点,但它无法正常工作。

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

由于

2 个答案:

答案 0 :(得分:1)

此类任务应使用节点迭代器实现。请参阅此example

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

NodesIterator

答案 1 :(得分:0)

我最终使用Queue,然后使用当前节点的tree.nodes浏览TreeList。

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