windowsforms-devexpress-dot-xtratreelist-86a47f1f.md
Represents a collection of selected nodes for the Tree List control.
Namespace : DevExpress.XtraTreeList
Assembly : DevExpress.XtraTreeList.v25.2.dll
NuGet Packages : DevExpress.Win.Navigation, DevExpress.Win.TreeList
[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
public class TreeListMultiSelection :
ICollection<TreeListNode>,
IEnumerable<TreeListNode>,
IEnumerable,
ICollection
<Browsable(False)>
<EditorBrowsable(EditorBrowsableState.Never)>
Public Class TreeListMultiSelection
Implements ICollection(Of TreeListNode),
IEnumerable(Of TreeListNode),
IEnumerable,
ICollection
The TreeListMultiSelection class provides facilities to manipulate selected nodes.
The collection of selected nodes for the Tree List control is supported by the TreeList.Selection property. Using the TreeListMultiSelection class methods you can select or unselect a specific node, unselect all nodes, and access nodes in this collection.
To enable selection of multiple nodes, set the TreeListOptionsSelection.MultiSelect property to true.
At runtime, multiple nodes can be selected by the left mouse button holding the SHIFT or CTRL key. The SHIFT key allows you to select a continuous range of nodes at a specific level. The CTRL key allows you to select or unselect individual nodes.
Important
Instances of this class are not intended to be used as stand-alone objects.
The following code shows how to select children of a specific node. In the example, nodes are selected via the TreeListMultiSelection.Set method of the TreeList.Selection object.
The image below shows the result of selecting a Sales and Marketing node’s children.
using DevExpress.XtraTreeList.Nodes;
TreeListNode node = treeList1.FindNodeByFieldValue("Department", "Sales and Marketing");
if (node != null) {
ArrayList selectedNodes = new ArrayList();
selectChildren(node, 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);
}
}
Imports DevExpress.XtraTreeList.Nodes
Dim node As TreeListNode = treeList1.FindNodeByFieldValue("Department", "Sales and Marketing")
If node IsNot Nothing Then
Dim selectedNodes As New ArrayList()
selectChildren(node, selectedNodes)
treeList1.Selection.[Set](selectedNodes)
End If
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
Object TreeListMultiSelection
See Also