TreeView de recherche

Cette fonction trouver seulement première nœud dans l'arborescence, qui contient Texterecherché.

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 == "")
        {
            return;
        };
        TreeNode SelectedNode = SearchNode(SearchText, treeView1.Nodes[0]);
        if (SelectedNode != null)
        {
            this.treeView1.SelectedNode = SelectedNode;
            this.treeView1.SelectedNode.Expand();
            this.treeView1.Select();
        };
    }

Comment dois-je le modifier, de sorte que la fonction sera en mesure de trouver non seulement le premier nœud, mais tous, à chaque fois lorsque je clique sur le bouton1, il va trouver nœud suivant jusqu'à la fin, et puis il commence à partir du début. Donc, je ne dois pas chercher pas de TreeView1.Les nœuds[0], mais à partir de TreeView1.SelectedNode...

Est-ce WinForms ou ASP.Net? Il y a deux parties à cette question, vraiment - trouver les nœuds, puis de les afficher. Je suppose que c'est pourquoi l'auteur a créé la fonction ne retourne qu'un seul nœud de manière à élargir l'arbre pour que seul nœud.
C'est WinForms. Je n'ai pas besoin d'afficher tous les nœuds dans le même temps, j'ai besoin de Sélectionner des nœuds par rotation

OriginalL'auteur Romz | 2012-07-17