Esta función solo busca primer nodo en treeview, que contiene SearchText.TreeView search
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();
};
}
¿Cómo debo cambiarlo, por lo que la función será capaz de encontrar no sólo el primer nodo, pero todos ellos, cada vez que hago clic en el botón 1, que se encuentra pegado nodo hasta el final, y luego comienza desde el principio Así que no debería buscar desde TreeView1.Nodes [0], sino desde TreeView1.SelectedNode ...
¿Es esta WinForms o ASP.Net? En realidad, hay dos partes en esta pregunta: encontrar los nodos y luego mostrarlos. Sospecho que es por eso que el autor creó la función: solo devuelve un nodo para expandir el árbol a ese único nodo. – dash
Esto es WinForms. No necesito mostrar todos los nodos al mismo tiempo, necesito seleccionar nodos por rotación –