/// <summary> /// Render a list of findItems (Works for both Find in Open documents and Find in Files) /// </summary> /// <param name="findItems"></param> public void Render(FindList findItems) { _findText = findItems.Find; _findLength = _findText.Length; TreeFind.BeginUpdate(); TreeFind.Nodes.Clear(); try { FindItem lastItem = null; TreeNode parentNode = null; foreach (FindItem item in findItems.Items) { if (lastItem == null || lastItem.FileName != item.FileName || lastItem.Document != item.Document) { parentNode = new TreeNode(item.Name); TreeFind.Nodes.Add(parentNode); } TreeNode node = new TreeNode(item.Text); node.Tag = item; parentNode.Nodes.Add(node); lastItem = item; } // Expand all results. TreeFind.ExpandAll(); } catch { } TreeFind.EndUpdate(); }
/// <summary> /// Handle the mousedown event so that the proper node can be selected no matter where /// the user clicks. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TreeFind_MouseDown(object sender, MouseEventArgs e) { try { TreeNode node = TreeFind.GetNodeAt(new Point(10, e.Y)); if (node != null) { TreeFind.SelectedNode = node; } } catch { } }