Saturday, September 13, 2008

How to search a text in Nodes of a TreeVew control?

The following methods can help to search a text in Nodes of a TreeView control recursively:

public TreeNode srchTxtInTreeView(TreeView trvToSrch, String strToSrch)
{
// check if the treeView is not NULL
if (trvToSrch == null)
return null;

// loop through the nodes in the treeview's root nodes
for (int i = 0; i < trvToSrch.Nodes.Count; i++)
{
TreeNode trvNode = srchTxtInTreeViewNode(trvToSrch.Nodes[i], strToSrch);
if (trvNode != null)
return trvNode;
}
return null;
}

public TreeNode srchTxtInTreeViewNode(TreeNode trvNode, String strToSrch)
{
// check if the treeView is not NULL
if (trvNode == null)
return null;

if (trvNode.Text == strToSrch)
return trvNode;

// loop through the nodes in the treeview's sub nodes
for (int i = 0; i < trvNode.Nodes.Count; i++)
{
// recursive call to itself to check lower level nodes
TreeNode retTrvNode = srchTxtInTreeViewNode(trvNode.Nodes[i], strToSrch);
if (retTrvNode != null)
return retTrvNode;
}
return null;
}

To call the method, I tested it by a Button control:

private void button1_Click(object sender, EventArgs e)
{
TreeNode retNode = srchTxtInTreeView(this.trvJust4Test, "Hello");
if (retNode != null)
MessageBox.Show(retNode.ToString() + "Node Found!");
}

Share/Bookmark

No comments: