TreeNodeCollection.Add Method

Definition

Adds a new tree node to the collection.

Overloads

Add(String)

Adds a new tree node with the specified label text to the end of the current tree node collection.

Add(TreeNode)

Adds a previously created tree node to the end of the tree node collection.

Add(String, String)

Creates a new tree node with the specified key and text, and adds it to the collection.

Add(String, String, Int32)

Creates a tree node with the specified key, text, and image, and adds it to the collection.

Add(String, String, String)

Creates a tree node with the specified key, text, and image, and adds it to the collection.

Add(String, String, Int32, Int32)

Creates a tree node with the specified key, text, and images, and adds it to the collection.

Add(String, String, String, String)

Creates a tree node with the specified key, text, and images, and adds it to the collection.

Add(String)

Adds a new tree node with the specified label text to the end of the current tree node collection.

public:
 virtual System::Windows::Forms::TreeNode ^ Add(System::String ^ text);
public virtual System.Windows.Forms.TreeNode Add (string text);
abstract member Add : string -> System.Windows.Forms.TreeNode
override this.Add : string -> System.Windows.Forms.TreeNode
Public Overridable Function Add (text As String) As TreeNode

Parameters

text
String

The label text displayed by the TreeNode.

Returns

TreeNode

A TreeNode that represents the tree node being added to the collection.

Examples

The following code example displays customer information in a TreeView control. The root tree nodes display customer names, and the child tree nodes display the order numbers assigned to each customer. In this example, 1,000 customers are displayed with 15 orders each. The repainting of the TreeView is suppressed by using the BeginUpdate and EndUpdate methods, and a wait Cursor is displayed while the TreeView creates and paints the TreeNode objects. This example requires that you have a Customer object that can hold a collection of Order objects. It also requires that you have created an instance of a TreeView control on a Form.

// The basic Customer class.
ref class Customer: public System::Object
{
private:
   String^ custName;

protected:
   ArrayList^ custOrders;

public:
   Customer( String^ customername )
   {
      custName = "";
      custOrders = gcnew ArrayList;
      this->custName = customername;
   }


   property String^ CustomerName 
   {
      String^ get()
      {
         return this->custName;
      }

      void set( String^ value )
      {
         this->custName = value;
      }

   }

   property ArrayList^ CustomerOrders 
   {
      ArrayList^ get()
      {
         return this->custOrders;
      }

   }

};


// End Customer class
// The basic customer Order class.
ref class Order: public System::Object
{
private:
   String^ ordID;

public:
   Order( String^ orderid )
   {
      ordID = "";
      this->ordID = orderid;
   }


   property String^ OrderID 
   {
      String^ get()
      {
         return this->ordID;
      }

      void set( String^ value )
      {
         this->ordID = value;
      }

   }

};
// End Order class



void FillMyTreeView()
{
   // Add customers to the ArrayList of Customer objects.
   for ( int x = 0; x < 1000; x++ )
   {
      customerArray->Add( gcnew Customer( "Customer " + x ) );
   }
   
   // Add orders to each Customer object in the ArrayList.
   IEnumerator^ myEnum = customerArray->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Customer^ customer1 = safe_cast<Customer^>(myEnum->Current);
      for ( int y = 0; y < 15; y++ )
      {
         customer1->CustomerOrders->Add( gcnew Order( "Order " + y ) );
      }
   }

   // Display a wait cursor while the TreeNodes are being created.
   ::Cursor::Current = gcnew System::Windows::Forms::Cursor( "MyWait.cur" );
   
   // Suppress repainting the TreeView until all the objects have been created.
   treeView1->BeginUpdate();
   
   // Clear the TreeView each time the method is called.
   treeView1->Nodes->Clear();
   
   // Add a root TreeNode for each Customer object in the ArrayList.
   myEnum = customerArray->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Customer^ customer2 = safe_cast<Customer^>(myEnum->Current);
      treeView1->Nodes->Add( gcnew TreeNode( customer2->CustomerName ) );
      
      // Add a child treenode for each Order object in the current Customer object.
      IEnumerator^ myEnum = customer2->CustomerOrders->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         Order^ order1 = safe_cast<Order^>(myEnum->Current);
         treeView1->Nodes[ customerArray->IndexOf( customer2 ) ]->Nodes->Add( gcnew TreeNode( customer2->CustomerName + "." + order1->OrderID ) );
      }
   }
   
   // Reset the cursor to the default for all controls.
   ::Cursor::Current = Cursors::Default;
   
   // Begin repainting the TreeView.
   treeView1->EndUpdate();
}

// The basic Customer class.
public class Customer : System.Object
{
   private string custName = "";
   protected ArrayList custOrders = new ArrayList();

   public Customer(string customername)
   {
      this.custName = customername;
   }

   public string CustomerName
   {      
      get{return this.custName;}
      set{this.custName = value;}
   }

   public ArrayList CustomerOrders 
   {
      get{return this.custOrders;}
   }
} // End Customer class 

// The basic customer Order class.
public class Order : System.Object
{
   private string ordID = "";

   public Order(string orderid)
   {
      this.ordID = orderid;
   }

   public string OrderID
   {      
      get{return this.ordID;}
      set{this.ordID = value;}
   }
} // End Order class

// Create a new ArrayList to hold the Customer objects.
private ArrayList customerArray = new ArrayList(); 

private void FillMyTreeView()
{
   // Add customers to the ArrayList of Customer objects.
   for(int x=0; x<1000; x++)
   {
      customerArray.Add(new Customer("Customer" + x.ToString()));
   }

   // Add orders to each Customer object in the ArrayList.
   foreach(Customer customer1 in customerArray)
   {
      for(int y=0; y<15; y++)
      {
         customer1.CustomerOrders.Add(new Order("Order" + y.ToString()));    
      }
   }

   // Display a wait cursor while the TreeNodes are being created.
   Cursor.Current = new Cursor("MyWait.cur");
        
   // Suppress repainting the TreeView until all the objects have been created.
   treeView1.BeginUpdate();

   // Clear the TreeView each time the method is called.
   treeView1.Nodes.Clear();

   // Add a root TreeNode for each Customer object in the ArrayList.
   foreach(Customer customer2 in customerArray)
   {
      treeView1.Nodes.Add(new TreeNode(customer2.CustomerName));
          
      // Add a child treenode for each Order object in the current Customer object.
      foreach(Order order1 in customer2.CustomerOrders)
      {
         treeView1.Nodes[customerArray.IndexOf(customer2)].Nodes.Add(
           new TreeNode(customer2.CustomerName + "." + order1.OrderID));
      }
   }

   // Reset the cursor to the default for all controls.
   Cursor.Current = Cursors.Default;

   // Begin repainting the TreeView.
   treeView1.EndUpdate();
}
Public Class Customer
   Inherits [Object]
   Private custName As String = ""
   Friend custOrders As New ArrayList()

   Public Sub New(ByVal customername As String)
      Me.custName = customername
   End Sub

   Public Property CustomerName() As String
      Get
         Return Me.custName
      End Get
      Set(ByVal Value As String)
         Me.custName = Value
      End Set
   End Property

   Public ReadOnly Property CustomerOrders() As ArrayList
      Get
         Return Me.custOrders
      End Get
   End Property
End Class


Public Class Order
   Inherits [Object]
   Private ordID As String

   Public Sub New(ByVal orderid As String)
      Me.ordID = orderid
   End Sub

   Public Property OrderID() As String
      Get
         Return Me.ordID
      End Get
      Set(ByVal Value As String)
         Me.ordID = Value
      End Set
   End Property
End Class

' Create a new ArrayList to hold the Customer objects.
Private customerArray As New ArrayList()

Private Sub FillMyTreeView()
   ' Add customers to the ArrayList of Customer objects.
   Dim x As Integer
   For x = 0 To 999
      customerArray.Add(New Customer("Customer" + x.ToString()))
   Next x

   ' Add orders to each Customer object in the ArrayList.
   Dim customer1 As Customer
   For Each customer1 In customerArray
      Dim y As Integer
      For y = 0 To 14
         customer1.CustomerOrders.Add(New Order("Order" + y.ToString()))
      Next y
   Next customer1

   ' Display a wait cursor while the TreeNodes are being created.
   Cursor.Current = New Cursor("MyWait.cur")

   ' Suppress repainting the TreeView until all the objects have been created.
   treeView1.BeginUpdate()

   ' Clear the TreeView each time the method is called.
   treeView1.Nodes.Clear()

   ' Add a root TreeNode for each Customer object in the ArrayList.
   Dim customer2 As Customer
   For Each customer2 In customerArray
      treeView1.Nodes.Add(New TreeNode(customer2.CustomerName))

      ' Add a child TreeNode for each Order object in the current Customer object.
      Dim order1 As Order
      For Each order1 In customer2.CustomerOrders
         treeView1.Nodes(customerArray.IndexOf(customer2)).Nodes.Add( _
    New TreeNode(customer2.CustomerName + "." + order1.OrderID))
      Next order1
   Next customer2

   ' Reset the cursor to the default for all controls.
   Cursor.Current = System.Windows.Forms.Cursors.Default

   ' Begin repainting the TreeView.
   treeView1.EndUpdate()
End Sub

Remarks

You can also add new TreeNode objects to the collection by using the AddRange or Insert methods.

To remove a TreeNode that you previously added, use the Remove, RemoveAt, or Clear methods.

See also

Add(TreeNode)

Adds a previously created tree node to the end of the tree node collection.

public:
 virtual int Add(System::Windows::Forms::TreeNode ^ node);
public virtual int Add (System.Windows.Forms.TreeNode node);
abstract member Add : System.Windows.Forms.TreeNode -> int
override this.Add : System.Windows.Forms.TreeNode -> int
Public Overridable Function Add (node As TreeNode) As Integer

Parameters

node
TreeNode

The TreeNode to add to the collection.

Returns

Int32

The zero-based index value of the TreeNode added to the tree node collection.

Exceptions

The node is currently assigned to another TreeView.

Examples

The following code example displays customer information in a TreeView control. The root tree nodes display customer names, and the child tree nodes display the order numbers assigned to each customer. In this example, 1,000 customers are displayed with 15 orders each. The repainting of the TreeView is suppressed by using the BeginUpdate and EndUpdate methods, and a wait Cursor is displayed while the TreeView creates and paints the TreeNode objects. This example requires that you have a Customer object that can hold a collection of Order objects. It also requires that you have created an instance of a TreeView control on a Form.

// The basic Customer class.
ref class Customer: public System::Object
{
private:
   String^ custName;

protected:
   ArrayList^ custOrders;

public:
   Customer( String^ customername )
   {
      custName = "";
      custOrders = gcnew ArrayList;
      this->custName = customername;
   }


   property String^ CustomerName 
   {
      String^ get()
      {
         return this->custName;
      }

      void set( String^ value )
      {
         this->custName = value;
      }

   }

   property ArrayList^ CustomerOrders 
   {
      ArrayList^ get()
      {
         return this->custOrders;
      }

   }

};


// End Customer class
// The basic customer Order class.
ref class Order: public System::Object
{
private:
   String^ ordID;

public:
   Order( String^ orderid )
   {
      ordID = "";
      this->ordID = orderid;
   }


   property String^ OrderID 
   {
      String^ get()
      {
         return this->ordID;
      }

      void set( String^ value )
      {
         this->ordID = value;
      }

   }

};
// End Order class



void FillMyTreeView()
{
   // Add customers to the ArrayList of Customer objects.
   for ( int x = 0; x < 1000; x++ )
   {
      customerArray->Add( gcnew Customer( "Customer " + x ) );
   }
   
   // Add orders to each Customer object in the ArrayList.
   IEnumerator^ myEnum = customerArray->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Customer^ customer1 = safe_cast<Customer^>(myEnum->Current);
      for ( int y = 0; y < 15; y++ )
      {
         customer1->CustomerOrders->Add( gcnew Order( "Order " + y ) );
      }
   }

   // Display a wait cursor while the TreeNodes are being created.
   ::Cursor::Current = gcnew System::Windows::Forms::Cursor( "MyWait.cur" );
   
   // Suppress repainting the TreeView until all the objects have been created.
   treeView1->BeginUpdate();
   
   // Clear the TreeView each time the method is called.
   treeView1->Nodes->Clear();
   
   // Add a root TreeNode for each Customer object in the ArrayList.
   myEnum = customerArray->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Customer^ customer2 = safe_cast<Customer^>(myEnum->Current);
      treeView1->Nodes->Add( gcnew TreeNode( customer2->CustomerName ) );
      
      // Add a child treenode for each Order object in the current Customer object.
      IEnumerator^ myEnum = customer2->CustomerOrders->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         Order^ order1 = safe_cast<Order^>(myEnum->Current);
         treeView1->Nodes[ customerArray->IndexOf( customer2 ) ]->Nodes->Add( gcnew TreeNode( customer2->CustomerName + "." + order1->OrderID ) );
      }
   }
   
   // Reset the cursor to the default for all controls.
   ::Cursor::Current = Cursors::Default;
   
   // Begin repainting the TreeView.
   treeView1->EndUpdate();
}

// The basic Customer class.
public class Customer : System.Object
{
   private string custName = "";
   protected ArrayList custOrders = new ArrayList();

   public Customer(string customername)
   {
      this.custName = customername;
   }

   public string CustomerName
   {      
      get{return this.custName;}
      set{this.custName = value;}
   }

   public ArrayList CustomerOrders 
   {
      get{return this.custOrders;}
   }
} // End Customer class 

// The basic customer Order class.
public class Order : System.Object
{
   private string ordID = "";

   public Order(string orderid)
   {
      this.ordID = orderid;
   }

   public string OrderID
   {      
      get{return this.ordID;}
      set{this.ordID = value;}
   }
} // End Order class

// Create a new ArrayList to hold the Customer objects.
private ArrayList customerArray = new ArrayList(); 

private void FillMyTreeView()
{
   // Add customers to the ArrayList of Customer objects.
   for(int x=0; x<1000; x++)
   {
      customerArray.Add(new Customer("Customer" + x.ToString()));
   }

   // Add orders to each Customer object in the ArrayList.
   foreach(Customer customer1 in customerArray)
   {
      for(int y=0; y<15; y++)
      {
         customer1.CustomerOrders.Add(new Order("Order" + y.ToString()));    
      }
   }

   // Display a wait cursor while the TreeNodes are being created.
   Cursor.Current = new Cursor("MyWait.cur");
        
   // Suppress repainting the TreeView until all the objects have been created.
   treeView1.BeginUpdate();

   // Clear the TreeView each time the method is called.
   treeView1.Nodes.Clear();

   // Add a root TreeNode for each Customer object in the ArrayList.
   foreach(Customer customer2 in customerArray)
   {
      treeView1.Nodes.Add(new TreeNode(customer2.CustomerName));
          
      // Add a child treenode for each Order object in the current Customer object.
      foreach(Order order1 in customer2.CustomerOrders)
      {
         treeView1.Nodes[customerArray.IndexOf(customer2)].Nodes.Add(
           new TreeNode(customer2.CustomerName + "." + order1.OrderID));
      }
   }

   // Reset the cursor to the default for all controls.
   Cursor.Current = Cursors.Default;

   // Begin repainting the TreeView.
   treeView1.EndUpdate();
}
Public Class Customer
   Inherits [Object]
   Private custName As String = ""
   Friend custOrders As New ArrayList()

   Public Sub New(ByVal customername As String)
      Me.custName = customername
   End Sub

   Public Property CustomerName() As String
      Get
         Return Me.custName
      End Get
      Set(ByVal Value As String)
         Me.custName = Value
      End Set
   End Property

   Public ReadOnly Property CustomerOrders() As ArrayList
      Get
         Return Me.custOrders
      End Get
   End Property
End Class


Public Class Order
   Inherits [Object]
   Private ordID As String

   Public Sub New(ByVal orderid As String)
      Me.ordID = orderid
   End Sub

   Public Property OrderID() As String
      Get
         Return Me.ordID
      End Get
      Set(ByVal Value As String)
         Me.ordID = Value
      End Set
   End Property
End Class

' Create a new ArrayList to hold the Customer objects.
Private customerArray As New ArrayList()

Private Sub FillMyTreeView()
   ' Add customers to the ArrayList of Customer objects.
   Dim x As Integer
   For x = 0 To 999
      customerArray.Add(New Customer("Customer" + x.ToString()))
   Next x

   ' Add orders to each Customer object in the ArrayList.
   Dim customer1 As Customer
   For Each customer1 In customerArray
      Dim y As Integer
      For y = 0 To 14
         customer1.CustomerOrders.Add(New Order("Order" + y.ToString()))
      Next y
   Next customer1

   ' Display a wait cursor while the TreeNodes are being created.
   Cursor.Current = New Cursor("MyWait.cur")

   ' Suppress repainting the TreeView until all the objects have been created.
   treeView1.BeginUpdate()

   ' Clear the TreeView each time the method is called.
   treeView1.Nodes.Clear()

   ' Add a root TreeNode for each Customer object in the ArrayList.
   Dim customer2 As Customer
   For Each customer2 In customerArray
      treeView1.Nodes.Add(New TreeNode(customer2.CustomerName))

      ' Add a child TreeNode for each Order object in the current Customer object.
      Dim order1 As Order
      For Each order1 In customer2.CustomerOrders
         treeView1.Nodes(customerArray.IndexOf(customer2)).Nodes.Add( _
    New TreeNode(customer2.CustomerName + "." + order1.OrderID))
      Next order1
   Next customer2

   ' Reset the cursor to the default for all controls.
   Cursor.Current = System.Windows.Forms.Cursors.Default

   ' Begin repainting the TreeView.
   treeView1.EndUpdate()
End Sub

Remarks

This version of the Add method allows you to add previously created TreeNode objects to the end of the tree node collection.

You can also add new TreeNode objects to the collection by using the AddRange or Insert methods.

To remove a TreeNode that you previously added, use the Remove, RemoveAt, or Clear methods.

Note

A TreeNode can be assigned to only one TreeView control at a time. To add the tree node to a new tree view control, you must remove it from the other tree view first or clone it.

See also

Add(String, String)

Creates a new tree node with the specified key and text, and adds it to the collection.

public:
 virtual System::Windows::Forms::TreeNode ^ Add(System::String ^ key, System::String ^ text);
public virtual System.Windows.Forms.TreeNode Add (string key, string text);
abstract member Add : string * string -> System.Windows.Forms.TreeNode
override this.Add : string * string -> System.Windows.Forms.TreeNode
Public Overridable Function Add (key As String, text As String) As TreeNode

Parameters

key
String

The name of the tree node.

text
String

The text to display in the tree node.

Returns

TreeNode

The TreeNode that was added to the collection.

Remarks

The Name property corresponds to the key for a TreeNode in the TreeNodeCollection.

You can also add new TreeNode objects to the collection by using the AddRange or Insert methods.

Add(String, String, Int32)

Creates a tree node with the specified key, text, and image, and adds it to the collection.

public:
 virtual System::Windows::Forms::TreeNode ^ Add(System::String ^ key, System::String ^ text, int imageIndex);
public virtual System.Windows.Forms.TreeNode Add (string key, string text, int imageIndex);
abstract member Add : string * string * int -> System.Windows.Forms.TreeNode
override this.Add : string * string * int -> System.Windows.Forms.TreeNode
Public Overridable Function Add (key As String, text As String, imageIndex As Integer) As TreeNode

Parameters

key
String

The name of the tree node.

text
String

The text to display in the tree node.

imageIndex
Int32

The index of the image to display in the tree node.

Returns

TreeNode

The TreeNode that was added to the collection.

Remarks

The Name property corresponds to the key for a TreeNode in the TreeNodeCollection.

The imageIndex parameter refers to an image in the ImageList property of the parent TreeView.

The tree node is added to the end of the collection. You can also add new TreeNode objects to the collection by using the AddRange or Insert methods.

Add(String, String, String)

Creates a tree node with the specified key, text, and image, and adds it to the collection.

public:
 virtual System::Windows::Forms::TreeNode ^ Add(System::String ^ key, System::String ^ text, System::String ^ imageKey);
public virtual System.Windows.Forms.TreeNode Add (string key, string text, string imageKey);
abstract member Add : string * string * string -> System.Windows.Forms.TreeNode
override this.Add : string * string * string -> System.Windows.Forms.TreeNode
Public Overridable Function Add (key As String, text As String, imageKey As String) As TreeNode

Parameters

key
String

The name of the tree node.

text
String

The text to display in the tree node.

imageKey
String

The image to display in the tree node.

Returns

TreeNode

The TreeNode that was added to the collection.

Remarks

The Name property corresponds to the key for a TreeNode in the TreeNodeCollection.

The tree node is added to the end of the collection. You can also add new TreeNode objects to the collection by using the AddRange or Insert methods.

The imageKey parameter refers to an image in the ImageList property of the parent TreeView.

Add(String, String, Int32, Int32)

Creates a tree node with the specified key, text, and images, and adds it to the collection.

public:
 virtual System::Windows::Forms::TreeNode ^ Add(System::String ^ key, System::String ^ text, int imageIndex, int selectedImageIndex);
public virtual System.Windows.Forms.TreeNode Add (string key, string text, int imageIndex, int selectedImageIndex);
abstract member Add : string * string * int * int -> System.Windows.Forms.TreeNode
override this.Add : string * string * int * int -> System.Windows.Forms.TreeNode
Public Overridable Function Add (key As String, text As String, imageIndex As Integer, selectedImageIndex As Integer) As TreeNode

Parameters

key
String

The name of the tree node.

text
String

The text to display in the tree node.

imageIndex
Int32

The index of the image to display in the tree node.

selectedImageIndex
Int32

The index of the image to be displayed in the tree node when it is in a selected state.

Returns

TreeNode

The tree node that was added to the collection.

Remarks

The Name property corresponds to the key for a TreeNode in the TreeNodeCollection.

The tree node is added to the end of the collection. You can also add new TreeNode objects to the collection by using the AddRange or Insert methods.

The imageIndex parameter refers to an image in the ImageList property of the parent TreeView.

The selectedImageIndex parameter refers to an image in the StateImageList property of the parent TreeView.

Add(String, String, String, String)

Creates a tree node with the specified key, text, and images, and adds it to the collection.

public:
 virtual System::Windows::Forms::TreeNode ^ Add(System::String ^ key, System::String ^ text, System::String ^ imageKey, System::String ^ selectedImageKey);
public virtual System.Windows.Forms.TreeNode Add (string key, string text, string imageKey, string selectedImageKey);
abstract member Add : string * string * string * string -> System.Windows.Forms.TreeNode
override this.Add : string * string * string * string -> System.Windows.Forms.TreeNode
Public Overridable Function Add (key As String, text As String, imageKey As String, selectedImageKey As String) As TreeNode

Parameters

key
String

The name of the tree node.

text
String

The text to display in the tree node.

imageKey
String

The key of the image to display in the tree node.

selectedImageKey
String

The key of the image to display when the node is in a selected state.

Returns

TreeNode

The TreeNode that was added to the collection.

Remarks

The Name property corresponds to the key for a TreeNode in the TreeNodeCollection.

The tree node is added to the end of the collection. You can also add new TreeNode objects to the collection by using the AddRange or Insert methods.

The imageKey parameter refers to an image in the ImageList property of the parent TreeView.

The selectedImageKey parameter refers to an image in the StateImageList property of the parent TreeView.

Applies to