Leer en inglés

Compartir a través de


TreeView.BeginUpdate Método

Definición

Deshabilita la actualización en pantalla de la vista de árbol.

C#
public void BeginUpdate();

Ejemplos

En el ejemplo de código siguiente se muestra la información del cliente en un TreeView control . Los nodos de árbol raíz muestran nombres de cliente y los nodos de árbol secundarios muestran los números de pedido asignados a cada cliente. En este ejemplo, se muestran 1000 clientes con 15 pedidos cada uno. La repaintación de TreeView se suprime mediante los BeginUpdate métodos y EndUpdate , y se muestra una espera Cursor mientras TreeView crea y pinta los TreeNode objetos . En este ejemplo se requiere que tenga un Customer objeto que pueda contener una colección de Order objetos . También requiere que tenga un archivo de cursor denominado MyWait.cur en el directorio de la aplicación y que haya creado una instancia de un TreeView control en .Form

C#

// 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();
}

Comentarios

Para mantener el rendimiento mientras los elementos se agregan de uno en uno a uno a , TreeViewllame al BeginUpdate método . El BeginUpdate método impide que el control pinte hasta que se llame al EndUpdate método .

La manera preferida de agregar elementos a un control de vista de árbol es usar el AddRange método para agregar una matriz de elementos de nodo de árbol a una vista de árbol. Sin embargo, si desea agregar elementos de uno en uno, use el BeginUpdate método para evitar que el TreeView control pinte durante las operaciones de adición. Para permitir que el control reanude la pintura, llame al EndUpdate método cuando se hayan agregado todos los nodos de árbol a la vista de árbol.

Se aplica a

Producto Versiones
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Consulte también