TreeNode Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 |
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 |
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. |