Partilhar via


TreeNode Classe

Definição

Representa um nó de um TreeView.

public ref class TreeNode : MarshalByRefObject, ICloneable, System::Runtime::Serialization::ISerializable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.TreeNodeConverter))]
[System.Serializable]
public class TreeNode : MarshalByRefObject, ICloneable, System.Runtime.Serialization.ISerializable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.TreeNodeConverter))>]
[<System.Serializable>]
type TreeNode = class
    inherit MarshalByRefObject
    interface ICloneable
    interface ISerializable
Public Class TreeNode
Inherits MarshalByRefObject
Implements ICloneable, ISerializable
Herança
Derivado
Atributos
Implementações

Exemplos

O exemplo de código a seguir exibe informações do cliente em um TreeView controle . Os nós de árvore raiz exibem nomes de clientes e os nós de árvore filho exibem os números de pedido atribuídos a cada cliente. Neste exemplo, 1.000 clientes são exibidos com 15 pedidos cada. O repositório do TreeView é suprimido usando os BeginUpdate métodos e EndUpdate e uma espera Cursor é exibida enquanto o TreeView cria e pinta os TreeNode objetos. Este exemplo exige que você tenha um Customer objeto que possa conter uma coleção de Order objetos . Ele também requer que você tenha criado uma instância de um TreeView controle em um Form.

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


Public Class Order
   Inherits [Object]
   Private ordID As String

   Public Sub New(ByVal orderid As String)
      Me.ordID = orderid
   End Sub

   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

' 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

Comentários

A Nodes coleção contém todos os objetos filho TreeNode atribuídos ao atual TreeNode. Você pode adicionar, remover ou clonar um TreeNode; ao fazer isso, todos os nós de árvore filho são adicionados, removidos ou clonados. Cada TreeNode um pode conter uma coleção de outros TreeNode objetos. Isso pode dificultar a determinação de onde você está no TreeView ao iterar pela coleção. Para determinar sua localização em uma estrutura de árvore, use a FullPath propriedade . A FullPath cadeia de caracteres pode ser analisada usando o valor da PathSeparator cadeia de caracteres para determinar onde um TreeNode rótulo começa e termina.

O TreeNode rótulo é definido definindo a Text propriedade explicitamente. A alternativa é criar o nó de árvore usando um dos TreeNode construtores que tem um parâmetro de cadeia de caracteres que representa a Text propriedade . O rótulo será exibido ao lado da TreeNode imagem, se um for exibido.

Para exibir imagens ao lado dos nós de árvore, atribua um ImageList à propriedade do controle pai TreeView e atribua um Image referenciando seu valor de índice na ImageListImageList propriedade . Defina a ImageIndex propriedade como o valor de índice do Image que você deseja exibir quando o TreeNode estiver em um estado não selecionado. Da mesma forma, defina a SelectedImageIndex propriedade como o valor de índice do Image que você deseja exibir quando o TreeNode estiver selecionado.

A seleção de nós de árvore específicos e a Nodes iteração pela coleção podem ser obtidas usando os seguintes valores de propriedade: FirstNode, LastNode, NextNode, PrevNode, NextVisibleNode, PrevVisibleNode. Atribua o TreeNode retornado por uma das propriedades mencionadas anteriormente à TreeView.SelectedNode propriedade para selecionar esse nó de árvore no TreeView controle .

Nós de árvore podem ser expandidos para exibir o próximo nível de nós de árvore filho. O usuário pode expandir o TreeNode pressionando o botão de adição (+) ao lado do TreeNode, se um for exibido ou você pode expandir o TreeNode chamando o Expand método . Para expandir todos os níveis de nó de árvore filho na Nodes coleção, chame o ExpandAll método . Você pode recolher o nível filho TreeNode chamando o Collapse método ou o usuário pode pressionar o botão de subtração (-) ao lado de TreeNode, se um for exibido. Você também pode chamar o Toggle método para alternar entre os TreeNode estados expandido e recolhido.

Nós de árvore podem, opcionalmente, exibir uma caixa de seleção. Para exibir as caixas de seleção, defina a CheckBoxes propriedade do TreeView como true. A Checked propriedade é definida true como para nós de árvore que estão em um estado verificado.

Construtores

TreeNode()

Inicializa uma nova instância da classe TreeNode.

TreeNode(SerializationInfo, StreamingContext)

Inicializa uma nova instância da classe TreeNode usando as informações de serialização e o contexto especificados.

TreeNode(String)

Inicializa uma nova instância da classe TreeNode com o texto de rótulo especificado.

TreeNode(String, Int32, Int32)

Inicializa uma nova instância da classe TreeNode com o texto do rótulo especificado e imagens a serem exibidas quando o nó de árvore está em um estado selecionado e não selecionado.

TreeNode(String, Int32, Int32, TreeNode[])

Inicializa uma nova instância da classe TreeNode com o texto do rótulo especificado, nós de árvore filho e imagens a serem exibidas quando o nó de árvore está em um estado selecionado e não selecionado.

TreeNode(String, TreeNode[])

Inicializa uma nova instância da classe TreeNode com o texto do rótulo especificado e os nós da árvore filho.

Propriedades

BackColor

Obtém ou define a cor da tela de fundo do nó de árvore.

Bounds

Obtém os limites do nó de árvore.

Checked

Obtém ou define um valor que indica se o nó de árvore está em um estado de ativação.

ContextMenu

Obtém o menu de atalho associado a este nó de árvore.

ContextMenuStrip

Obtém ou define o menu de atalho associado a este nó de árvore.

FirstNode

Obtém o primeiro nó filho de árvore na coleção de nós de árvore.

ForeColor

Obtém ou define a cor de primeiro plano do nó da árvore.

FullPath

Obtém o caminho do nó de árvore raiz para o nó de árvore atual.

Handle

Obtém o identificador do nó de árvore.

ImageIndex

Obtém ou define o valor de índice da lista de imagens da imagem exibida quando o nó da árvore está no estado desmarcado.

ImageKey

Obtém ou define a chave da imagem associada a este nó de árvore quando o nó está em estado não selecionado.

Index

Obtém a posição do nó de árvore na coleção de nós de árvore.

IsEditing

Obtém um valor que indica se o nó de árvore está em um estado editável.

IsExpanded

Obtém um valor que indica se o nó de árvore está no estado expandido.

IsSelected

Obtém um valor que indica se o nó de árvore está no estado selecionado.

IsVisible

Obtém um valor que indica se o nó de árvore está visível ou parcialmente visível.

LastNode

Obtém o último de nó de árvore filho.

Level

Obtém a profundidade com base em zero do nó de árvore no controle TreeView.

Name

Obtém ou define o nome do nó de árvore.

NextNode

Obtém o próximo nó de árvore irmão.

NextVisibleNode

Obtém o próximo nó de árvore visível.

NodeFont

Obtém ou define a fonte que é usada para exibir o texto no rótulo do nó da árvore.

Nodes

Obtém a coleção de objetos TreeNode atribuídos ao nó da árvore atual.

Parent

Obtém o nó de árvore pai do nó de árvore atual.

PrevNode

Obtém o nó de árvore irmão anterior.

PrevVisibleNode

Obtém o nó de árvore visível anterior.

SelectedImageIndex

Obtém ou define valor de índice da lista de imagens da imagem exibida quando o nó da árvore está no estado desmarcado.

SelectedImageKey

Obtém ou define a chave da imagem exibida no nó de árvore quando ele está em um estado selecionado.

StateImageIndex

Obtém ou define o índice da imagem que é usado para indicar o estado do TreeNode quando o pai TreeView tem sua propriedade CheckBoxes definida como false.

StateImageKey

Obtém ou define a chave da imagem usada para indicar o estado do TreeNode quando o pai TreeView tem sua propriedade CheckBoxes definida como false.

Tag

Obtém ou define o objeto que contém dados sobre o nó de árvore.

Text

Obtém ou define o texto exibido no rótulo da árvore do nó.

ToolTipText

Obtém ou define o texto que aparece quando o ponteiro do mouse passa sobre um TreeNode.

TreeView

Obtém o modo de exibição de árvore pai ao qual o nó de árvore está atribuído.

Métodos

BeginEdit()

Inicia a edição do rótulo do nó de árvore.

Clone()

Copia o nó de árvore e a subárvore inteira com raiz neste nó de árvore.

Collapse()

Minimiza o nó de árvore.

Collapse(Boolean)

Recolhe o TreeNode e, opcionalmente, recolhe seus filhos.

CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Deserialize(SerializationInfo, StreamingContext)

Carrega o estado do TreeNode do SerializationInfo especificado.

EndEdit(Boolean)

Termina a edição do rótulo do nó da árvore.

EnsureVisible()

Garante que o nó da árvore esteja visível, expandindo os nós da árvore e rolando o controle de exibição de árvore conforme necessário.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Expand()

Expande o nó de árvore.

ExpandAll()

Expande todos os nós de árvore filhos.

FromHandle(TreeView, IntPtr)

Retorna o nó de árvore com o identificador especificado e atribuído ao controle de exibição de árvore especificado.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância.

(Herdado de MarshalByRefObject)
GetNodeCount(Boolean)

Retorna o número dos nós de árvore filho.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
Remove()

Remove o nó de árvore atual do controle de exibição de árvore.

Serialize(SerializationInfo, StreamingContext)

Salva o estado do TreeNode no SerializationInfo especificado.

Toggle()

Alterna o nó de árvore para o estado expandido ou recolhido.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

Implantações explícitas de interface

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Popula um objeto de informações de serialização com os dados necessários para serializar o TreeNode.

Aplica-se a

Confira também