protected void UpdateNode(TreeNode treeNode, IManagedTreeNode node) { treeNode.Tag = node; treeNode.Text = node.TreeText; treeNode.ImageIndex = node.TreeImageIndex; treeNode.SelectedImageIndex = node.TreeImageIndex; for (int i = 0; i < node.TreeChildren.Length; i++) { if (treeNode.Nodes.Count > i) { // Update child. UpdateNode(treeNode.Nodes[i], node.TreeChildren[i]); continue; } // New child. TreeNode newChild = new TreeNode(); node.TreeChildren[i].TreeModifiedEvent += new ModifiedDelegate(NodeModified); UpdateNode(newChild, node.TreeChildren[i]); treeNode.Nodes.Add(newChild); } for (int i = treeNode.Nodes.Count - 1; i >= node.TreeChildren.Length; i--) { treeNode.Nodes[i].Remove(); } }
public void NodeModified(IManagedTreeNode node) { this.SuspendLayout(); TreeNode treeNode = GetNodeByTag(Nodes, node); if ( treeNode != null ) { UpdateNode(treeNode, node); } this.ExpandAll(); this.ResumeLayout(); }
public void NodeModified(IManagedTreeNode node) { this.SuspendLayout(); TreeNode treeNode = GetNodeByTag(Nodes, node); if (treeNode != null) { UpdateNode(treeNode, node); } this.ExpandAll(); this.ResumeLayout(); }
protected void UpdateNode(TreeNode treeNode, IManagedTreeNode node) { treeNode.Tag = node; treeNode.Text = node.TreeText; treeNode.ImageIndex = node.TreeImageIndex; treeNode.SelectedImageIndex = node.TreeImageIndex; for(int i=0; i<node.TreeChildren.Length; i++) { if ( treeNode.Nodes.Count > i ) {// Update child. UpdateNode(treeNode.Nodes[i], node.TreeChildren[i]); continue; } // New child. TreeNode newChild = new TreeNode(); node.TreeChildren[i].TreeModifiedEvent += new ModifiedDelegate(NodeModified); UpdateNode(newChild, node.TreeChildren[i]); treeNode.Nodes.Add(newChild); } for(int i=treeNode.Nodes.Count-1; i>=node.TreeChildren.Length; i--) { treeNode.Nodes[i].Remove(); } }