Back to Devexpress

TreeListMultiSelection Class

windowsforms-devexpress-dot-xtratreelist-86a47f1f.md

latest4.1 KB
Original Source

TreeListMultiSelection Class

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

Declaration

csharp
[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
public class TreeListMultiSelection :
    ICollection<TreeListNode>,
    IEnumerable<TreeListNode>,
    IEnumerable,
    ICollection
vb
<Browsable(False)>
<EditorBrowsable(EditorBrowsableState.Never)>
Public Class TreeListMultiSelection
    Implements ICollection(Of TreeListNode),
               IEnumerable(Of TreeListNode),
               IEnumerable,
               ICollection

Remarks

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.

Example

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.

csharp
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);
   }
}
vb
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

Inheritance

Object TreeListMultiSelection

See Also

TreeListMultiSelection Members

DevExpress.XtraTreeList Namespace