public static void Search(TreeView tvApps, string searchText, DataGridView dgvSearch) { tvApps.Nodes.Clear(); TreeNode rootNode = new TreeNode("Applications"); tvApps.Nodes.Add(rootNode); foreach (var application in SSOConfigManager.GetApplications()) { string appUserAcct, appAdminAcct, description, contactInfo; HybridDictionary props = SSOConfigManager.GetConfigProperties(application, out description, out contactInfo, out appUserAcct, out appAdminAcct); // search string in all keys and values if (!string.IsNullOrWhiteSpace(searchText) && //!application.Equals(searchText, StringComparison.InvariantCultureIgnoreCase) && !ContainsIgnoreCase(application, searchText, StringComparison.OrdinalIgnoreCase) && !SSOConfigManager.SearchKeys(props, searchText) && !SSOConfigManager.SearchValues(props, searchText)) { continue; } var node = new TreeNode(application) { ToolTipText = description }; // add node if found rootNode.Nodes.Add(node); } TreeNodeCollection nodes = rootNode.Nodes; if (nodes.Count > 0) { // Select the root node tvApps.SelectedNode = nodes[0]; tvApps.SelectedNode.Expand(); LoadGrid(nodes[0].Text, dgvSearch); tvApps.Focus(); } }