private void searchResultsBox_SelectedIndexChanged(object sender, EventArgs e) { ListBox searchResultsBox = (ListBox)sender; try { if (searchResultsBox.SelectedItem != null) { string[] splitPath = ((string)searchResultsBox.SelectedItem).Split(@"\".ToCharArray()); WzNode node = null; TreeNodeCollection collection = DataTree.Nodes; for (int i = 0; i < splitPath.Length; i++) { node = GetNodeByName(collection, splitPath[i]); if (node.Tag is WzImage && !((WzImage)node.Tag).Parsed && i != splitPath.Length - 1) { ((WzImage)node.Tag).ParseImage(); node.Reparse(); } collection = node.Nodes; } if (node != null) { DataTree.SelectedNode = node; node.EnsureVisible(); DataTree.RefreshSelectedNodes(); } } } catch { } }
private void SearchWzProperties(IPropertyContainer parent) { foreach (WzImageProperty prop in parent.WzProperties) { if ((0 <= prop.Name.IndexOf(searchText, StringComparison.InvariantCultureIgnoreCase)) || (searchValues && prop is WzStringProperty && (0 <= ((WzStringProperty)prop).Value.IndexOf(searchText, StringComparison.InvariantCultureIgnoreCase)))) { if (listSearchResults) { searchResultsList.Add(prop.FullPath.Replace(";", @"\")); } else if (currentidx == searchidx) { if (prop.HRTag == null) { ((WzNode)prop.ParentImage.HRTag).Reparse(); } WzNode node = (WzNode)prop.HRTag; //if (node.Style == null) node.Style = new ElementStyle(); node.BackColor = Color.Yellow; coloredNode = node; node.EnsureVisible(); //DataTree.Focus(); finished = true; searchidx++; return; } else { currentidx++; } } if (prop is IPropertyContainer && prop.WzProperties.Count != 0) { SearchWzProperties((IPropertyContainer)prop); if (finished) { return; } } } }