O controle TreeView é utilizado para exibir dados de natureza hierárquica tais como organogramas organizacionais , dados hierárquicos , arquivos e diretórios , etc...
Abaixo temos um exemplo mostrando o controle TreeView exibindo os dados do banco de dados Biblio.mdb
Figura 1.0 TreeView
Uma 'árvore'(tree) é constituída por ramificações , que por sua vez são constituídas por muitos 'nós' (node), onde cada nó consiste de uma imagem (configurada através da propriedade Image) e um rótulo ( configurado via propriedade Text ). As imagens usadas nos nós(node) são fornecidas pela associação de um controle ImageList com o Controle TreeView.
Um nó(node) pode ser expandido ou retraído, dependendo se possuir ou não nós filhos(child nodes) descendentes. No nível superior ficam as raízes (root nodes) , e cada nó raiz pode ter qualquer quantidade de nós filhos.
Abaixo vemos um exemplo de uma árvore com com dois nós raizes(Root1 e Root2), onde "Root 1" possui três nós filhos(Child1,Child2 e Child3) e o nó "Child 3" possue também um nó (Child 4). O sinal (+) na raiz "Root 2" indica que ela possui nós filhos e pode ser expandida. O sinal de (-) em Root1 indica que podemos retrair as ramificações exibidas em Root1.
Figure 2.0 Raiz e Nós Filhos
Cada nó da árvore é um objeto Node programável que pertence á coleção Node e como em outras coleções cada membro da coleção possui uma única propriedade índice e uma única propriedade chave que nos permite acessar as propriedades do nó. Por exemplo , o código abaixo usa a propriedade Index do node ("7") para configurar as propriedades Image e Text:
tvwMeuTree.Nodes(7).Image = "closed"
tvwMeuTree.Nodes(7).Text = "teste"
Cada nó pode ser um nó filho ou um nó pai , dependendo de seu relacionamento com outros nós. O objeto Node possui diversas propriedades que retornam vários tipos de informação sobre nós pai e nós filhos. O exemplo a seguir usa a propriedade Children para retonar o número de "filhos" que um nó possui:
MsgBox tvwMeuTree.Nodes(10).Children
Algumas propriedades podem retornar apenas uma referência a outros objetos Node. Assim a propriedade Parent retorna uma referência ao nó pai de qualquer nó particular e com essa informação você pode manipular o nó pai através de seus métodos ou pela configuração de suas propriedades. A seguir temos um exemplo que retorna as propriedades Text e Index do nó pai.
MsgBox tvwMeuTree.Nodes(10).Parent.Text
MsgBox tvwMeuTree.Nodes(10).Parent.Index
Para incluir um nó(Node) a uma árvore(Tree) usamos o método Add (Nodes collection). Este método contém dois argumentos: relative and relationship, os quais podem determinar onde o nó será incluído. O primeiro argumento - relative - dá nome a um nó; o segundo argumento - relationship - especifica o relacionamento entre o novo nó e o nó referenciado em relative.
A sintaxe para o método Add é a seguinte:
object.Add(relative, relationship, key, text, image, selectedimage)
argumentos | Descrição |
relative | Opcional. O número do Index ou Key de um objeto Node pré-existente. |
relationship | Opcional. Determina o posicionamento do nó . |
key | Opcional. Uma string única que pode ser usada para retornar o Nó com o método Item. |
text | Obrigatório. A string que aparece no Nó. |
image | Opcional. O índice da imagem no controle ImageList associado |
selectedimage | Opcional. O índice de uma imagem associada ao controle ImageList que será visualizada quando o Nó é selecionado. |
Explicando melhor : Quando você cria um nó pode fazer isto a partir de um nó já existente , e, para criar um nó dentro do outro você deve usar o argumento relative se referindo a nó que já existe.
O código a seguir inclui um nó chamado "11 node" como um nó filho de outro nó chamado "7 node", a constante tvwChild determina que o novo nó é um filho de um nó chamado no argumento anterior .
tvwMeuTree.Nodes.Add "7 node", tvwChild, "11 node"
O argumento relationship vai identificar qual a relação entre o nó que estamos criando e o nó que já existe . Valores possíveis de relacionamentos:
Constante | Valor | Descrição |
tvwLast | 1 | O nó é posicionado depois de todos os outros nós e no mesmo nível do nó definido em relative. |
tvwNext | 2 | O nó é posicionado depois do nó nomeado em relative. |
tvwPrevious | 3 | O nó é posicionado antes do nó nomeado em relative. |
tvwChild | 4 | O nó torna-se um nó filho do nó definido em relative. |
Assim , supondo que exista três nós e que queiramos colocar um quarto nó entre o segundo e o terceiro nó, como faríamos ? .Veja o código abaixo:
'Assumindo que o valor da propriedade Key para o nó é "2 Node"
tvwMyTree.Nodes.Add "2 node", tvwNext
Podemos declarar uma variável objeto do tipo Node e então configurar suas propriedades usando o método Add. A instrução Set define a variável objeto como um novo Nó. Podemos então usar a variável objeto para configurar as propriedades do Nó. Veja exemplo a seguir:
Dim nodX As Node
Set nodX = tvwMyTree.Nodes.Add("10 node", tvwChild)
nodX.Key = "11 node"
nodX.Text = "IEEE"
nodX.Image = "closed"
Bem ... , por enquanto vamos
ficando por aqui , veja a continuação deste artigo em :
Usando o Controle TreeView -
Prática II.
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#