Actualización: noviembre 2007
Representa una colección de objetos TreeNode.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
Public Class TreeNodeCollection _ Implements IList, ICollection, IEnumerable
Dim instance As TreeNodeCollection
public class TreeNodeCollection : IList, ICollection, IEnumerable
public ref class TreeNodeCollection : IList, ICollection, IEnumerable
public class TreeNodeCollection implements IList, ICollection, IEnumerable
public class TreeNodeCollection implements IList, ICollection, IEnumerable
Los métodos Add, Remove y RemoveAt permiten agregar y quitar nodos de árbol individuales de la colección.
Nota:
|
|---|
|
No se permite enumerar la colección y quitar nodos. |
Se puede utilizar también el método AddRange o Clear para agregar o quitar todos los nodos de árbol de la colección.
Esta clase no se puede heredar de la clase TreeNodeCollection.
En el ejemplo de código siguiente, se muestra la información de los clientes en un control TreeView. Los nodos de árbol raíz muestran los nombres de los clientes y los nodos secundarios muestran los números de pedido asignados a cada cliente. En este ejemplo, se muestran 1.000 clientes con 15 pedidos cada uno. Para impedir que TreeView vuelva a dibujarse, se utilizan los métodos BeginUpdate y EndUpdate, y se muestra un Cursor de espera mientras TreeView crea y dibuja los objetos TreeNode. En este ejemplo se requiere que haya un objeto Customer que pueda contener una colección de objetos Order. También se requiere que se haya creado una instancia de un control TreeView en Form.
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 'End Customer class Public Class Order Inherits [Object] Private ordID As String Public Sub New(ByVal orderid As String) Me.ordID = orderid End Sub 'New 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 ' End Order 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 'FillMyTreeView
// 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(); }
// 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 extends Object
{
private String custName = "";
protected ArrayList custOrders = new ArrayList();
public Customer(String customername)
{
this.custName = customername;
} //Customer
/** @property
*/
public String get_CustomerName()
{
return this.custName;
} //get_CustomerName
/** @property
*/
public void set_CustomerName(String value)
{
this.custName = value;
} //set_CustomerName
/** @property
*/
public ArrayList get_CustomerOrders()
{
return this.custOrders;
} //get_CustomerOrders
} //End Customer class
// The basic customer Order class.
public class Order extends Object
{
private String ordID = "";
public Order(String orderid)
{
this.ordID = orderid;
} //Order
/** @property
*/
public String get_OrderID()
{
return this.ordID;
} //get_OrderID
/** @property
*/
public void set_OrderID(String value)
{
this.ordID = value;
} //set_OrderID
} // 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"
+ ((Int32)x).ToString()));
}
// Add orders to each Customer object in the ArrayList.
for (int iCtr = 0; iCtr < customerArray.get_Count(); iCtr++) {
Customer customer1 = (Customer)customerArray.get_Item(iCtr);
for (int y = 0; y < 15; y++) {
customer1.get_CustomerOrders().Add(new Order("Order"
+ ((Int32)y).ToString()));
}
}
// Display a wait cursor while the TreeNodes are being created.
get_Cursor().set_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.get_Nodes().Clear();
// Add a root TreeNode for each Customer object in the ArrayList.
for (int iCtr1 = 0; iCtr1 < customerArray.get_Count(); iCtr1++) {
Customer customer2 = (Customer)customerArray.get_Item(iCtr1);
treeView1.get_Nodes().Add(new TreeNode(customer2.get_CustomerName()));
// Add a child treenode for each Order object in the current
// Customer object.
for (int iCtr2 = 0; iCtr2 < customer2.get_CustomerOrders().
get_Count(); iCtr2++) {
Order order1 = (Order)customer2.get_CustomerOrders().
get_Item(iCtr2);
treeView1.get_Nodes().
get_Item(customerArray.IndexOf(customer2)).get_Nodes().
Add(new TreeNode(customer2.get_CustomerName() + "."
+ order1.get_OrderID()));
}
}
// Reset the cursor to the default for all controls.
get_Cursor().set_Current(Cursors.get_Default());
// Begin repainting the TreeView.
treeView1.EndUpdate();
} //FillMyTreeView
System.Windows.Forms.TreeNodeCollection
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Nota: