title: How to get a list of all child nodes in a TreeView in .NET
body: <p>I have a TreeView control in my WinForms .NET application that has multiple levels of childnodes that have childnodes with more childnodes, with no defined depth. When a user selects any parent node (not necessarily at the root level), how can I get a list of all the nodes beneith that parent node?</p>
  
  <p>For example, I started off with this:</p>
  
  <pre><code>Dim nodes As List(Of String)
  
  For Each childNodeLevel1 As TreeNode In parentNode.Nodes
      For Each childNodeLevel2 As TreeNode In childNodeLevel1.Nodes
          For Each childNodeLevel3 As TreeNode In childNodeLevel2.Nodes
              nodes.Add(childNodeLevel3.Text)
          Next
      Next
  Next
  </code></pre>
  
  <p>The problem is that this loop depth is defined and I'm only getting nodes burried down three levels. What if next time the user selects a parent node, there are seven levels?</p>