下列代码展示了如何选择特定节点的子节点。 在本示例中,通过 TreeList.Selection 对象的 TreeListMultiSelection.Set 方法选中节点。

下面的插图展示了 Sales and Marketing 节点的子节点的选择结果。

C#CopyCode image复制代码
using DevExpress.XtraTreeList.Nodes;

// ...
void selectSpecificNode() {
   ArrayList selectedNodes = new ArrayList();
   selectChildren(treeList1.Nodes[0].Nodes[0], selectedNodes);
   treeList1.Selection.Set(selectedNodes);
}

void selectChildren(TreeListNode parent, ArrayList selectedNodes) {
   IEnumerator en = parent.Nodes.GetEnumerator();
   TreeListNode child;
   while(en.MoveNext()) {
      child = (TreeListNode)en.Current;
      selectedNodes.Add(child);
      if(child.HasChildren) selectChildren(child, selectedNodes);
   }
}
Visual BasicCopyCode image复制代码
Imports DevExpress.XtraTreeList.Nodes

' ...
Sub SelectSpecificNode()
   Dim selectedNodes As ArrayList = New ArrayList()
   selectChildren(TreeList1.Nodes(0).Nodes(0), selectedNodes)
   TreeList1.Selection.Set(selectedNodes)
End Sub

Sub SelectChildren(ByVal parent As TreeListNode, ByVal selectedNodes As ArrayList)
   Dim en As IEnumerator = parent.Nodes.GetEnumerator()
   Dim child As TreeListNode
   While en.MoveNext() = True
      child = CType(en.Current, TreeListNode)
      selectedNodes.Add(child)
      If child.HasChildren = True Then
         selectChildren(child, selectedNodes)
      End If
   End While
End Sub