private void button2_Click(object sender, System.EventArgs e) { TreeNode retVal = this.Caller(); if (retVal != null) { MessageBox.Show(retVal.Text); retVal.BackColor = Color.PowderBlue; } else { MessageBox.Show("Null i.e. da node was not found"); } } private TreeNode Caller() { TreeNode retVal = null; foreach (TreeNode n in this.treeView1.Nodes) { retVal = PrintRecursive(n); if (retVal != null) { break; } } return retVal; } private TreeNode PrintRecursive(TreeNode treeNode) { if (treeNode.Text.Trim() == this.textBox3.Text.Trim()) { return treeNode; } TreeNode retVal = null; foreach (TreeNode tn in treeNode.Nodes) { retVal = PrintRecursive(tn); if (retVal != null) { break; } } return retVal; }I like it returning a TreeNode.