private void timer1_Tick(object sender, EventArgs e) { timer1.Stop(); TreeNode treeNode = tvwNodes.SelectedNode; if (DisplayedNode != treeNode) { if (treeNode?.Tag is object node) { Visualizer visualizer = NodeVisualizer.GetVisualizer(node); Debug.Assert(visualizer != null); lblType.Text = node.GetType().Name; visualizer.PopulateProperties(node, lvwProperties); txtText.Text = visualizer.LongDescription(node); } else { lblType.Text = string.Empty; lvwProperties.Columns.Clear(); lvwProperties.Items.Clear(); txtText.Text = string.Empty; } DisplayedNode = treeNode; } }
/// <summary> /// Populates TreeView control with nodes /// </summary> /// <param name="nodes"></param> /// <param name="parent"></param> public void LoadNodes(HtmlNodeCollection nodes, TreeNode parent) { // Populate foreach (HtmlNode node in nodes) { Visualizer visualizer = NodeVisualizer.GetVisualizer(node); Debug.Assert(visualizer != null); TreeNode treeNode = parent.Nodes.Add(visualizer.ShortDescription(node)); treeNode.Tag = node; treeNode.ImageIndex = treeNode.SelectedImageIndex = GetImageIndex(node); if (node is HtmlElementNode elementNode) { LoadNodes(elementNode.Children, treeNode); } } }