CopyTo() 공개 메소드

public CopyTo ( Array dest, int index ) : void
dest System.Array
index int
리턴 void
            /// <include file='doc\ObjectSelectorEditor.uex' path='docs/doc[@for="ObjectSelectorEditor.Selector.SetSelection"]/*' />
            /// <devdoc>
            ///    <para>[To be supplied.]</para>
            /// </devdoc>
            public bool SetSelection(object value, System.Windows.Forms.TreeNodeCollection nodes)
            {
                TreeNode[] treeNodes;

                if (nodes == null)
                {
                    treeNodes = new TreeNode[this.Nodes.Count];
                    this.Nodes.CopyTo(treeNodes, 0);
                }
                else
                {
                    treeNodes = new TreeNode[nodes.Count];
                    nodes.CopyTo(treeNodes, 0);
                }

                int len = treeNodes.Length;

                if (len == 0)
                {
                    return(false);
                }

                for (int i = 0; i < len; i++)
                {
                    if (((SelectorNode)treeNodes[i]).value == value)
                    {
                        SelectedNode = treeNodes[i];
                        return(true);
                    }
                    if ((treeNodes[i].Nodes != null) && (treeNodes[i].Nodes.Count != 0))
                    {
                        treeNodes[i].Expand();
                        if (SetSelection(value, treeNodes[i].Nodes))
                        {
                            return(true);
                        }
                        treeNodes[i].Collapse();
                    }
                }
                return(false);
            }
예제 #2
0
		public void SortNodes(TreeNodeCollection nodes, bool recursive)
		{
			if (!isSorted) {
				return;
			}
			TreeNode[] nodeArray = new TreeNode[nodes.Count];
			nodes.CopyTo(nodeArray, 0);
			Array.Sort(nodeArray, nodeSorter);
			nodes.Clear();
			nodes.AddRange(nodeArray);

			if (recursive) {
				foreach (TreeNode childNode in nodeArray) {
					SortNodes(childNode.Nodes, true);
				}
			}
		}
 public bool SetSelection(object value, TreeNodeCollection nodes)
 {
     TreeNode[] nodeArray;
     if (nodes == null)
     {
         nodeArray = new TreeNode[base.Nodes.Count];
         base.Nodes.CopyTo(nodeArray, 0);
     }
     else
     {
         nodeArray = new TreeNode[nodes.Count];
         nodes.CopyTo(nodeArray, 0);
     }
     int length = nodeArray.Length;
     if (length != 0)
     {
         for (int i = 0; i < length; i++)
         {
             if (((ObjectSelectorEditor.SelectorNode) nodeArray[i]).value == value)
             {
                 base.SelectedNode = nodeArray[i];
                 return true;
             }
             if ((nodeArray[i].Nodes != null) && (nodeArray[i].Nodes.Count != 0))
             {
                 nodeArray[i].Expand();
                 if (this.SetSelection(value, nodeArray[i].Nodes))
                 {
                     return true;
                 }
                 nodeArray[i].Collapse();
             }
         }
     }
     return false;
 }
예제 #4
0
 public void SortNodes(TreeNodeCollection nodes, bool recursive)
 {
     if (this.isSorted)
     {
         TreeNode[] dest = new TreeNode[nodes.Count];
         nodes.CopyTo(dest, 0);
         Array.Sort<TreeNode>(dest, this.nodeSorter);
         nodes.Clear();
         nodes.AddRange(dest);
         if (recursive)
         {
             foreach (TreeNode node in dest)
             {
                 this.SortNodes(node.Nodes, true);
             }
         }
     }
 }
예제 #5
0
        /// <summary>Sorts the specified nodes.</summary>
        /// <param name="nodes">The nodes.</param>
        /// <param name="recursive">if set to <c>true</c> recursively sorts the children nodes.</param>
        protected void SortNodes(TreeNodeCollection nodes, bool recursive)
        {
            TreeNode[] array = new TreeNode[nodes.Count];
            nodes.CopyTo(array, 0);
            Array.Sort(array, base.TreeViewNodeSorter);
            nodes.Clear();
            nodes.AddRange(array);

            if (recursive)
            {
                foreach (TreeNode child in array) SortNodes(child.Nodes, true);
            }
        }
예제 #6
0
 /// <summary>Refreshes the specified nodes.</summary>
 /// <param name="nodes">The nodes.</param>
 private void RefreshNodes(TreeNodeCollection nodes) 
 {
     TreeNode[] dest = new TreeNode[nodes.Count];
     nodes.CopyTo(dest, 0);
     nodes.Clear();
     nodes.AddRange(dest);
 }