Interfaces Gráficas de Usuario/Tree Views

Los TreeViews son elementos de interfaz gráfica de usuario que presenta una vista jerárquica de información. Cada elemento (a menudo llamado rama o nodo) puede tener una serie de sub elementos. Esta puede ser visualizada como tabulado en una lista. Un elemento puede revelar sub elementos.

Los tree view se ven a menudo en un administrador de archivos de aplicaciones, donde permite al usuario navegar por el sistema de archivos de directorios. También se utilizan para presentar datos jerárquicos, como un documento XML. El control TreeView sirve para mostrar datos jerárquicos, como una tabla de contenido o un directorio de archivos, en una estructura de árbol.

El control TreeView se compone de uno o varios nodos. Cada entrada en el árbol se conoce como nodo.

Tipos de nodos

editar

a. Raíz: Nodo que no tiene ningún nodo primario y tiene uno o varios nodos secundarios. b. Primario: Nodo que tiene un nodo primario y uno o varios nodos secundarios. c. Hoja: Nodo que no tiene ningún nodo secundario.

Aunque un árbol típico sólo tiene un nodo raíz, el control TreeView le permite agregar varios nodos raíz a la estructura de árbol. Esto resulta útil cuando se desean mostrar las listas de elementos sin mostrar un único nodo raíz principal, como por ejemplo, en una lista de categorías de producto.

Ejemplos

editar

Ejemplo (Código) // Populates a TreeView control with example nodes. private void InitializeTreeView()

{

   treeView1.BeginUpdate();
   treeView1.Nodes.Add("Parent");
   treeView1.Nodes[0].Nodes.Add("Child 1");
   treeView1.Nodes[0].Nodes.Add("Child 2");
   treeView1.Nodes[0].Nodes[1].Nodes.Add("Grandchild");
   treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("Great Grandchild");
   treeView1.EndUpdate();

}

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

}

El único modo correcto de usar los TreeView es en forma vertical en forma jerárquica y respetando la regla de los 3 nodos.

Usos Incorrectos -Vista horizontal en el panel -No usar adecuadamente los nodos

Referencias

editar