Visual – TreeView – TreeNode – C#

Publicado: 15 de abril de 2014 em C#

Em computação, um tree view (literalmente do inglês vista de árvore) é um elemento de interface gráfica (isto é um componente widget) que permite ao usuário mostrar dados hierárquicos em forma de árvore, expandir ou recolher os ramos e nós. Dependendo do wiget toolkit ou aplicação em uso, existem muitos estilos de apresentação gráfica de tree views.

TreeView

Exibe uma coleção hierárquica de itens rotulados, cada um representado por um TreeNode.

TreeNode

Representa um de um TreeView.

treeviewcs

Tree View

 

Exemplo:

Neste exemplo usamos uma visão de arvore para exibir uma discografia musical, você pode abrir e fechar os nós do modelo de dados em visão de  árvore, um duplo clique do mouse em cada nó dispara um evento para que exibido a descrição do nó corrente em um rodapé.

C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Arvorecs
{
    public partial class Form1 : Form
    {
        // Declara componentes
        Label rotulo;
        Label rodape;
        TreeView disco;

        // Declara variaveis e Arrays
        String albumB = "Please, Please Me";

        String[] MusicaB = {  "I Saw Her Standing There",  "Misery",  "Anna (Go to Him)",
                "Chains" ,  "Boys" , "Ask Me Why",  "Please Please Me",  "Love Me Do" ,
                "P.S. I Love You",  "Baby It's You",  "Do You Want To Know A Secret?",
                "A Taste of Honey",  "There's A Place",  "Twist and Shout"  };

        String albumR = "The Rolling Stones";

        String[] MusicaR ={ "Route 66", "I Just Want to Make Love to You", "Honest I Do",
               "Mona (I Need You Baby)",  "You Can Make It If You Try", "Little by Little",
               "I\'m a King Bee", "Carol", "Tell Me (You \'re Coming Back)", "Can I Get a Witness",
               "Tell Me (You\'re Coming Back)",  "Walking the Dog" };   


        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            // Define propriedades do formulario
            this.Text = "DA - TreeView";
            this.Size = new Size(350, 600);

            // Cria componentes
            rotulo = new Label();
            rodape = new Label();
            disco = new TreeView();
            
            // Define texto dos componentes
            rotulo.Text = "Duplo clique em um nó da arvore:";
            rodape.Text = "Evento do mouse";

            // Define tamanho dos componentes
            rotulo.Size = new Size(300, 20);
            rodape.Size = new Size(300, 20);
            disco.Size = new Size(300, 500);

            // Alinha textos
            rotulo.TextAlign = ContentAlignment.TopCenter;
            rodape.TextAlign = ContentAlignment.TopCenter;

            // Posiciona componentes
            rotulo.Location = new Point(10, 10);
            rodape.Location = new Point(10, 540);
            disco.Location = new Point(10, 30);

            // Cria nós da arvore
            TreeNode titulo = new TreeNode("Discografia");
            TreeNode b1 = new TreeNode("Beatles");
            TreeNode b2 = new TreeNode("Rolling Stones");

            TreeNode a1 = new TreeNode(albumB);
            TreeNode a2 = new TreeNode(albumR);

            // Adiciona nós na arvore e sub-nós
            titulo.Nodes.Add(b1);
            titulo.Nodes.Add(b2);

            b1.Nodes.Add(a1);
            b2.Nodes.Add(a2);

            TreeNode m1 = new TreeNode();
            TreeNode m2 = new TreeNode();

            for (int i = 0;  i < MusicaB.Length ; i++)
            {
                m1 = new TreeNode(MusicaB[i]);
                a1.Nodes.Add(m1);

            }

            for (int i = 0; i < MusicaR.Length; i++)
            {
                m2 = new TreeNode(MusicaR[i]);
                a2.Nodes.Add(m2);

            }

           // Adiciona nó principal
            disco.Nodes.Add(titulo);

            // Evento da arvore
            disco.DoubleClick += new System.EventHandler(this.disco_DoubleClick);

            // Adiciona componentes no formulario
            this.Controls.Add(rotulo);
            this.Controls.Add(rodape);
            this.Controls.Add(disco);

        }

        private void disco_DoubleClick(object sender, EventArgs e)
        {
            // Seleciona nó corrente
            rodape.Text = disco.SelectedNode.ToString();
        }
    }
}
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s