title: TreeView search
body: <p>This function find only <strong>first</strong> node in treeview, that contains <code>SearchText</code>.</p>
  <pre class="lang-cs prettyprint-override"><code>private TreeNode SearchNode(string SearchText,TreeNode StartNode)
  {
      TreeNode node=null;
      while (StartNode!= null)
      {
          if (StartNode.Text.ToLower().Contains(SearchText.ToLower()))
          {
              node = StartNode; 
              break;
          };
          if (StartNode.Nodes.Count != 0) 
          {
              node=SearchNode(SearchText, StartNode.Nodes[0]);//Recursive Search
              if (node != null)
              {
                  break;
              };
          };
          StartNode = StartNode.NextNode;
      };
      return node;
  } 
  
  private void button1_Click(object sender, EventArgs e)
  {
      string SearchText = this.textBox1.Text;
      if (SearchText == &quot;&quot;)
      {
          return;
      };
      TreeNode SelectedNode = SearchNode(SearchText, treeView1.Nodes[0]);
      if (SelectedNode != null)
      {
          this.treeView1.SelectedNode = SelectedNode;
          this.treeView1.SelectedNode.Expand();
          this.treeView1.Select();
      };
  }
  </code></pre>
  <p>How should I change it, so the function will able to find not only the first node, but all of them, every time when I click <code>button1</code>, it'll find next node till the end, and then it starts from the beginning? So I should search not from <code>TreeView1.Nodes[0]</code>, but from <code>TreeView1.SelectedNode</code>...</p>