Простая рекурсия должна дать решение для обхода всего дерева.
private TreeListNode GetNodeByName(TreeListNodes prmNodes, String prmName)
{
foreach (TreeListNode node in prmNodes)
{
// Assume the data is present in column 0.
if (node[0].ToString().Contains(prmName, StringComparison.CurrentCultureIgnoreCase))
return node;
TreeListNode foundNode = GetNodeByName(node.Nodes, prmName);
if (foundNode != null)
return foundNode;
}
return null;
}
//---------------------------------------------------------------------------
Теперь, если вы сделаете простой вызов вроде:
TreeListNode node = GetNodeByName (treeList.Nodes, "MyNodeName");
, вы получите нужный вам узел.