2010-09-14 4 views
2

J'essaie de traverser les nœuds de DevExpress.XtraTreeList.TreeList et cela ne fonctionne pas.Comment parcourir les nœuds pour un DevExpress.XtraTreeList.TreeList

Fondamentalement tout ce que j'ai est la légende et la valeur du noeud que je veux rechercher. Y a-t-il un moyen simple de le trouver? Après avoir été trouvé, je suis en train de déplacer le focus sur le nouveau noeud et je sais déjà comment faire si j'ai le bon index.

Merci

Répondre

0

J'ai fini à l'aide d'un Queue puis passer par l'aide de tree.nodes de liste arborescente le nœud actuel.

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

Ces tâches devraient être mises en œuvre au moyen d'un iterator nœud. S'il vous plaît se référer à ce example

à cet égard. Le NodesIterator est décrit dans notre documentation:

NodesIterator

Questions connexes