【问题标题】:How to traverse the nodes for a DevExpress.XtraTreeList.TreeList如何遍历 DevExpress.XtraTreeList.TreeList 的节点
【发布时间】:2010-09-14 22:10:33
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: visual-studio-2008 devexpress xtratreelist


    【解决方案1】:

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

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

    NodesIterator

    【讨论】:

      【解决方案2】:

      我最终使用了 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多