2010-09-14 202 views
2

我想遍历DevExpress.XtraTreeList.TreeList的节点,它不工作。如何遍历DevExpress.XtraTreeList.TreeList的节点

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

谢谢

回答

0

我结束了使用Queue然后通过使用的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 
1

这样的任务应该使用节点迭代器来实现。请参阅example

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

NodesIterator