// END - NEW ADD OVERLOADS IN WHIDBEY --> /// <include file='doc\TreeNodeCollection.uex' path='docs/doc[@for="TreeNodeCollection.AddRange"]/*' /> public virtual void AddRange(TreeNode[] nodes) { if (nodes == null) { throw new ArgumentNullException(nameof(nodes)); } if (nodes.Length == 0) { return; } TreeView tv = owner.TreeView; if (tv != null && nodes.Length > TreeNode.MAX_TREENODES_OPS) { tv.BeginUpdate(); } owner.Nodes.FixedIndex = owner.childCount; owner.EnsureCapacity(nodes.Length); for (int i = nodes.Length - 1; i >= 0; i--) { AddInternal(nodes[i], i); } owner.Nodes.FixedIndex = -1; if (tv != null && nodes.Length > TreeNode.MAX_TREENODES_OPS) { tv.EndUpdate(); } }
/// <include file='doc\TreeNodeCollection.uex' path='docs/doc[@for="TreeNodeCollection.Add1"]/*' /> /// <devdoc> /// Adds a new child node to this node. Child node is positioned after siblings. /// </devdoc> public virtual int Add(TreeNode node) { if (node == null) { throw new ArgumentNullException("node"); } if (node.handle != IntPtr.Zero) { throw new ArgumentException(SR.GetString(SR.OnlyOneControl, node.Text), "node"); } // If the TreeView is sorted, index is ignored TreeView tv = owner.TreeView; if (tv != null && tv.Sorted) { return(owner.AddSorted(node)); } owner.EnsureCapacity(); node.parent = owner; node.index = owner.childCount++; owner.children[node.index] = node; node.Realize(); if (tv != null && node == tv.selectedNode) { tv.SelectedNode = node; // communicate this to the handle } return(node.index); }