How to get index of all the nodes in a TreeView?

Total Post:30

Points:210
C#  .NET 
 1309  View(s)
Ratings:
Rate this:

I tried using:

TreeNode node = TreeView1.FindNode()

but it only finds root nodes. It is not able to find Child Nodes.

I want to get index of all the nodes and after that I want to use above code to find nodes by index and Check the Checkbox.

I tried using foreach to iterate through all the nodes, but I am not able to find child nodes and index.

I am using Visual Studio 2013.

  1. Post:102

    Points:714
    Re: How to get index of all the nodes in a TreeView?

    The following method allows you to traverse through a tree:

    public static IEnumerable<T> Traverse<T>(
        this IEnumerable<T> source
        , Func<T, IEnumerable<T>> childrenSelector)
    {
        var stack = new Stack<T>(source);
        while (stack.Any())
        {
            var next = stack.Pop();
            yield return next;
            foreach (var child in childrenSelector(next))
                stack.Push(child);
        }
    }

    Using this you can write:

    var allNodes = new[]{root}.Traverse(node => node.Nodes);

    You can then do whatever you want with the sequence of all of the nodes in the whole tree and do whatever you want with them.

     

      Modified On Apr-07-2018 12:25:29 AM

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!