TreeNode Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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 seguinte exemplo de código mostra a informação do cliente num TreeView controlo. Os nós da árvore raiz mostram os nomes dos clientes, e os nós da árvore filha mostram os números de encomenda atribuídos a cada cliente. Neste exemplo, são exibidos 1.000 clientes com 15 encomendas cada. A repintura do TreeView é suprimida através do uso dos BeginUpdate métodos e, EndUpdate e uma espera Cursor é exibida enquanto cria TreeView e pinta os TreeNode objetos. Este exemplo exige que tenhas um Customer objeto que possa conter uma coleção de Order objetos. Também requer que tenhas criado uma instância de controlo TreeView sobre 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
Observações
A Nodes coleção contém todos os objetos filhos TreeNode atribuídos ao atual TreeNode. Pode adicionar, remover ou clonar um TreeNode; ao fazer isto, todos os nós da árvore filho são adicionados, removidos ou clonados. Cada um TreeNode pode conter uma coleção de outros TreeNode objetos. Isto pode dificultar a determinação de onde se está TreeView ao iterar pela coleção. Para determinar a sua localização numa estrutura de árvores, utilize a propriedade FullPath . A FullPath cadeia pode ser analisada usando o valor da PathSeparator cadeia para determinar onde começa e termina uma TreeNode etiqueta.
O TreeNode rótulo é definido definindo explicitamente a Text propriedade. A alternativa é criar o nó da árvore usando um dos TreeNode construtores que tem um parâmetro de cadeia que representa a Text propriedade. A etiqueta é exibida ao lado da TreeNode imagem, caso seja exibida.
Para exibir imagens ao lado dos nós da árvore, atribui an ImageList à ImageList propriedade do controlo pai TreeView e atribui an Image referenciando o seu valor de índice na ImageList propriedade. Defina a ImageIndex propriedade para o valor de índice de e Image que quer mostrar quando está TreeNode num estado não selecionado. Da mesma forma, defina a SelectedImageIndex propriedade para o valor do índice de que Image quer mostrar quando o TreeNode for selecionado.
Selecionar nós específicos da árvore e iterar pela Nodes coleção pode ser conseguido usando os seguintes valores de propriedade: FirstNode, LastNode, NextNode, PrevNode, NextVisibleNode, PrevVisibleNode. Atribuir o TreeNode devolvido por uma das propriedades mencionadas à TreeView.SelectedNode propriedade para selecionar esse nó de árvore no TreeView controlo.
Os nós de árvore podem ser expandidos para mostrar o próximo nível de nós de árvore filhos. O utilizador pode expandir o TreeNode pressionando o botão plus (+) ao lado do TreeNode, se for exibido um, ou pode expandir o TreeNode chamando o Expand método. Para expandir todos os níveis dos nós da árvore filha na Nodes coleção, chame o ExpandAll método. Pode colapsar o nível filho TreeNode chamando o Collapse método, ou o utilizador pode pressionar o botão menos (-) ao lado do TreeNode, se um for exibido. Também pode chamar o Toggle método para alternar entre TreeNode os estados expandido e colapsado.
Os nós de árvore podem, opcionalmente, mostrar uma caixa de seleção. Para mostrar as caixas de seleção, defina a CheckBoxes propriedade do TreeView para true. A Checked propriedade é definida para true nós de árvore que estão num estado verificado.
Construtores
| Name | Description |
|---|---|
| TreeNode() |
Inicializa uma nova instância da TreeNode classe. |
| TreeNode(SerializationInfo, StreamingContext) |
Inicializa uma nova instância da TreeNode classe usando a informação e o contexto de serialização especificados. |
| TreeNode(String, Int32, Int32, TreeNode[]) |
Inicializa uma nova instância da TreeNode classe com o texto do rótulo especificado, nós da árvore filho e imagens para mostrar quando o nó da árvore estiver em estado selecionado e não selecionado. |
| TreeNode(String, Int32, Int32) |
Inicializa uma nova instância da TreeNode classe com o texto e imagens especificados para mostrar quando o nó da árvore estiver num estado selecionado e não selecionado. |
| TreeNode(String, TreeNode[]) |
Inicializa uma nova instância da TreeNode classe com o texto do rótulo especificado e os nós da árvore filhos. |
| TreeNode(String) |
Inicializa uma nova instância da TreeNode classe com o texto do rótulo especificado. |
Propriedades
| Name | Description |
|---|---|
| BackColor |
Obtém ou define a cor de fundo do nó da árvore. |
| Bounds |
Obtém os limites do nó árvore. |
| Checked |
Recebe ou define um valor que indica se o nó da árvore está num estado verificado. |
| ContextMenu |
Recebe o menu de atalho associado a este nó da árvore. |
| ContextMenuStrip |
Recebe ou define o menu de atalho associado a este nó da árvore. |
| FirstNode |
Obtém o primeiro nó filho da árvore na coleção de nós da árvore. |
| ForeColor |
Obtém ou define a cor em primeiro plano do nó árvore. |
| FullPath |
Obtém o caminho do nó da árvore raiz até ao nó atual da árvore. |
| Handle |
Obtém o controlo do nó árvore. |
| ImageIndex |
Recebe ou define o valor do índice da lista de imagens da imagem exibida quando o nó da árvore está no estado não selecionado. |
| ImageKey |
Obtém ou define a chave para a imagem associada a este nó da árvore quando este está num estado não selecionado. |
| Index |
Obtém a posição do nó da árvore na coleção de nós da árvore. |
| IsEditing |
Recebe um valor que indica se o nó da árvore está num estado editável. |
| IsExpanded |
Obtém um valor que indica se o nó da árvore está no estado expandido. |
| IsSelected |
Obtém um valor que indica se o nó da árvore está no estado selecionado. |
| IsVisible |
Recebe um valor que indica se o nó da árvore é visível ou parcialmente visível. |
| LastNode |
Fica com o último nó da árvore filho. |
| Level |
Obtém a profundidade baseada em zero do nó da árvore no TreeView controlo. |
| Name |
Obtém ou define o nome do nó da árvore. |
| NextNode |
Fica com o próximo nó irmão da árvore. |
| NextVisibleNode |
Obtém o próximo nó visível da árvore. |
| NodeFont |
Obtém ou define a fonte que é usada para exibir o texto na etiqueta do nó da árvore. |
| Nodes |
Obtém a coleção de TreeNode objetos atribuídos ao nó da árvore atual. |
| Parent |
Obtém o nó da árvore principal do nó atual da árvore. |
| PrevNode |
Obtém o nó da árvore irmã anterior. |
| PrevVisibleNode |
Obtém o nó visível da árvore anterior. |
| SelectedImageIndex |
Obtém ou define o valor do índice da lista de imagens da imagem que é exibida quando o nó da árvore está no estado selecionado. |
| SelectedImageKey |
Obtém ou define a chave da imagem apresentada no nó da árvore quando esta está num estado selecionado. |
| StateImageIndex |
Obtém ou define o índice da imagem que é usada para indicar o estado do TreeNode quando o pai TreeView tem a sua CheckBoxes propriedade definida para |
| StateImageKey |
Obtém ou define a chave da imagem usada para indicar o estado do TreeNode quando o pai TreeView tem a sua CheckBoxes propriedade definida para |
| Tag |
Obtém ou define o objeto que contém dados sobre o nó da árvore. |
| Text |
Recebe ou define o texto apresentado na etiqueta do nó da árvore. |
| ToolTipText |
Obtém ou define o texto que aparece quando o ponteiro do rato paira sobre um TreeNode. |
| TreeView |
Obtém a vista da árvore-mãe à qual o nó da árvore está atribuído. |
Métodos
| Name | Description |
|---|---|
| BeginEdit() |
Inicia a edição do rótulo do nó da árvore. |
| Clone() |
Copia o nó da árvore e toda a subárvore enraizada nesse nó da árvore. |
| Collapse() |
Colapsa o nó árvore. |
| Collapse(Boolean) |
Colapsa o TreeNode e, opcionalmente, colapsa os seus filhos. |
| CreateObjRef(Type) |
Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
| Deserialize(SerializationInfo, StreamingContext) |
Carrega o estado do TreeNode a partir do especificado SerializationInfo. |
| EndEdit(Boolean) |
Termina a edição da etiqueta do nó da árvore. |
| EnsureVisible() |
Assegura que o nó da árvore é visível, expandindo os nós da árvore e deslocando o controlo da vista da árvore conforme necessário. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| Expand() |
Expande o nó árvore. |
| ExpandAll() |
Expande todos os nós da árvore filhos. |
| FromHandle(TreeView, IntPtr) |
Devolve o nó da árvore com o handle especificado e atribuído ao controlo de vista em árvore especificado. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetLifetimeService() |
Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso. (Herdado de MarshalByRefObject) |
| GetNodeCount(Boolean) |
Devolve o número de nós da árvore filhos. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| InitializeLifetimeService() |
Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso. (Herdado de MarshalByRefObject) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto atual MarshalByRefObject . (Herdado de MarshalByRefObject) |
| Remove() |
Remove o nó da árvore atual do controlo da vista da árvore. |
| Serialize(SerializationInfo, StreamingContext) |
Guarda o estado do TreeNode para o especificado SerializationInfo. |
| Toggle() |
Alterna o nó da árvore para o estado expandido ou colapsado. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Preenche um objeto de informação de serialização com os dados necessários para serializar o TreeNode. |