TreeNode Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje uzel objektu 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]
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)]
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
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.TreeNodeConverter))>]
[<System.Serializable>]
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)>]
type TreeNode = class
inherit MarshalByRefObject
interface ICloneable
interface ISerializable
Public Class TreeNode
Inherits MarshalByRefObject
Implements ICloneable, ISerializable
- Dědičnost
- Odvozené
- Atributy
- Implementuje
Příklady
Následující příklad kódu zobrazí informace o zákazníci v ovládacím TreeView prvku. Uzly kořenového stromu zobrazují jména zákazníků a podřízené uzly stromu zobrazují čísla objednávek přiřazená jednotlivým zákazníkům. V tomto příkladu se zobrazí 1 000 zákazníků s 15 objednávkami. Překreslení objektu TreeView je potlačeno pomocí BeginUpdate metod a EndUpdate metod a čekání Cursor se zobrazí při TreeView vytváření a malování TreeNode objektů. Tento příklad vyžaduje, abyste měli Customer objekt, který může obsahovat kolekci Order objektů. Také vyžaduje, abyste vytvořili instanci TreeView ovládacího prvku na objektu 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
Poznámky
Kolekce Nodes obsahuje všechny podřízené TreeNode objekty přiřazené k aktuálnímu TreeNodeobjektu . Když to uděláte, můžete přidat, odebrat nebo naklonovat TreeNodea všechny podřízené uzly stromu se přidají, odeberou nebo naklonují. Každý z nich TreeNode může obsahovat kolekci jiných TreeNode objektů. To může ztížit určení místa, kde se nacházíte při TreeView iterování prostřednictvím kolekce. K určení umístění ve stromové struktuře použijte FullPath vlastnost. Řetězec FullPath lze analyzovat pomocí řetězcové PathSeparator hodnoty a určit, kde TreeNode popisek začíná a končí.
Popisek TreeNode je nastaven explicitním nastavením Text vlastnosti. Alternativou je vytvoření uzlu stromu pomocí jednoho z TreeNode konstruktorů, který má řetězcový parametr, který představuje Text vlastnost. Popisek se zobrazí vedle obrázku TreeNode , pokud se zobrazí.
Pokud chcete zobrazit obrázky vedle uzlů stromu, přiřaďte ImageListImageList vlastnost nadřazeného TreeView ovládacího prvku a přiřaďte Image odkazování na jeho hodnotu indexu ImageList ve vlastnosti. ImageIndex Nastavte vlastnost na hodnotu indexuImage, kterou chcete zobrazit, když TreeNode je v nevybraném stavu. Podobně nastavte SelectedImageIndex vlastnost na hodnotu indexu Image , kterou chcete zobrazit při TreeNode výběru.
Výběr konkrétních uzlů stromu a iterace prostřednictvím Nodes kolekce lze dosáhnout pomocí následujících hodnot vlastností: FirstNode, , LastNode, NextNodePrevNode, NextVisibleNode, PrevVisibleNode. TreeNode Přiřaďte vlastnost vrácenou jednou z výše uvedených vlastností k TreeView.SelectedNode výběru tohoto uzlu stromu v ovládacím TreeView prvku.
Uzly stromu je možné rozšířit, aby se zobrazila další úroveň podřízených uzlů stromu. Uživatel může rozbalit TreeNode stisknutím tlačítka plus (+) vedle TreeNode, pokud je zobrazen, nebo můžete rozbalit TreeNode voláním Expand metody. Chcete-li rozbalit všechny úrovně uzlů podřízeného stromu v kolekci Nodes , zavolejte metodu ExpandAll . Podřízenou TreeNode úroveň můžete sbalit voláním Collapse metody nebo uživatel může stisknout tlačítko minus (-) vedle TreeNodepoložky , pokud se zobrazí. Můžete také volat metodu Toggle , která bude střídat TreeNode mezi rozbalenými a sbalenými stavy.
Uzly stromu můžou volitelně zobrazit zaškrtávací políčko. Chcete-li zobrazit zaškrtávací políčka, nastavte CheckBoxes vlastnost TreeView na truehodnotu . Vlastnost je nastavena Checked pro true uzly stromu, které jsou ve stavu zaškrtnutí.
Konstruktory
| Name | Description |
|---|---|
| TreeNode() |
Inicializuje novou instanci TreeNode třídy. |
| TreeNode(SerializationInfo, StreamingContext) |
Inicializuje novou instanci TreeNode třídy pomocí zadané serializace informace a kontextu. |
| TreeNode(String, Int32, Int32, TreeNode[]) |
Inicializuje novou instanci TreeNode třídy se zadaným textem popisku, podřízenými uzly stromu a obrázky, které se zobrazí, když je uzel stromu ve vybraném a nevybraném stavu. |
| TreeNode(String, Int32, Int32) |
Inicializuje novou instanci TreeNode třídy se zadaným textem popisku a obrázky, které se zobrazí, když je uzel stromu ve vybraném a nevybraném stavu. |
| TreeNode(String, TreeNode[]) |
Inicializuje novou instanci TreeNode třídy se zadaným textem popisku a podřízenými uzly stromu. |
| TreeNode(String) |
Inicializuje novou instanci TreeNode třídy se zadaným textem popisku. |
Vlastnosti
| Name | Description |
|---|---|
| BackColor |
Získá nebo nastaví barvu pozadí uzlu stromu. |
| Bounds |
Získá hranice uzlu stromu. |
| Checked |
Získá nebo nastaví hodnotu označující, zda je uzel stromu v kontrolovaném stavu. |
| ContextMenu |
Získá místní nabídku, která je přidružena k uzlu stromu. |
| ContextMenuStrip |
Získá nebo nastaví místní nabídku přidruženou k uzlu stromu. |
| FirstNode |
Získá první uzel podřízeného stromu v kolekci uzlů stromu. |
| ForeColor |
Získá nebo nastaví barvu popředí uzlu stromu. |
| FullPath |
Získá cestu z kořenového uzlu stromu k aktuálnímu uzlu stromu. |
| Handle |
Získá popisovač uzlu stromu. |
| ImageIndex |
Získá nebo nastaví hodnotu indexu seznamu obrázků obrázku zobrazeného, když je uzel stromu v nevybraném stavu. |
| ImageKey |
Získá nebo nastaví klíč pro image přidruženou k uzlu stromu, když je uzel v nevybraném stavu. |
| Index |
Získá pozici uzlu stromu v kolekci uzlů stromu. |
| IsEditing |
Získá hodnotu označující, zda je uzel stromu v upravitelném stavu. |
| IsExpanded |
Získá hodnotu označující, zda uzel stromu je v rozbaleném stavu. |
| IsSelected |
Získá hodnotu označující, zda je uzel stromu ve vybraném stavu. |
| IsVisible |
Získá hodnotu určující, zda je uzel stromu viditelný nebo částečně viditelný. |
| LastNode |
Získá poslední uzel podřízeného stromu. |
| Level |
Získá nulovou hloubku uzlu stromu v ovládacím TreeView prvku. |
| Name |
Získá nebo nastaví název uzlu stromu. |
| NextNode |
Získá další uzel stromu na stejné úrovni. |
| NextVisibleNode |
Získá další viditelný uzel stromu. |
| NodeFont |
Získá nebo nastaví písmo, které se používá k zobrazení textu na popisku uzlu stromu. |
| Nodes |
Získá kolekci TreeNode objektů přiřazených k aktuálnímu uzlu stromu. |
| Parent |
Získá nadřazený uzel stromu aktuálního uzlu stromu. |
| PrevNode |
Získá předchozí uzel stromu na stejné úrovni. |
| PrevVisibleNode |
Získá předchozí viditelný uzel stromu. |
| SelectedImageIndex |
Získá nebo nastaví hodnotu indexu seznamu obrázků obrázku, který se zobrazí, když je uzel stromu ve vybraném stavu. |
| SelectedImageKey |
Získá nebo nastaví klíč obrázku zobrazeného ve stromu uzel, když je ve vybraném stavu. |
| StateImageIndex |
Získá nebo nastaví index obrázku, který se používá k označení stavu TreeNode , kdy nadřazený TreeView objekt má jeho CheckBoxes vlastnost nastavena na |
| StateImageKey |
Získá nebo nastaví klíč image, která se používá k označení stavu TreeNode , kdy nadřazený TreeView má jeho CheckBoxes vlastnost nastavena na |
| Tag |
Získá nebo nastaví objekt, který obsahuje data o uzlu stromu. |
| Text |
Získá nebo nastaví text zobrazený v popisku uzlu stromu. |
| ToolTipText |
Získá nebo nastaví text, který se zobrazí, když ukazatel myši najede TreeNodemyší na . |
| TreeView |
Získá nadřazené stromové zobrazení, ke kterému je uzel stromu přiřazen. |
Metody
| Name | Description |
|---|---|
| BeginEdit() |
Zahájí úpravy popisku uzlu stromu. |
| Clone() |
Zkopíruje uzel stromu a celý podstrom v tomto uzlu stromu. |
| Collapse() |
Sbalí uzel stromu. |
| Collapse(Boolean) |
Sbalí TreeNode a volitelně sbalí podřízené položky. |
| CreateObjRef(Type) |
Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
| Deserialize(SerializationInfo, StreamingContext) |
Načte stav zadaného objektu TreeNodeSerializationInfo. |
| EndEdit(Boolean) |
Ukončí úpravy popisku uzlu stromu. |
| EnsureVisible() |
Zajišťuje, že je uzel stromu viditelný, rozbalí se stromové uzly a podle potřeby se posune ovládací prvek stromového zobrazení. |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| Expand() |
Rozbalí uzel stromu. |
| ExpandAll() |
Rozbalí všechny uzly podřízeného stromu. |
| FromHandle(TreeView, IntPtr) |
Vrátí uzel stromu se zadaným popisovačem a přiřazeným k zadanému ovládacímu prvku stromového zobrazení. |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetLifetimeService() |
Zastaralé.
Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| GetNodeCount(Boolean) |
Vrátí počet uzlů podřízeného stromu. |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| InitializeLifetimeService() |
Zastaralé.
Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu. (Zděděno od MarshalByRefObject) |
| Remove() |
Odebere aktuální uzel stromu z ovládacího prvku stromového zobrazení. |
| Serialize(SerializationInfo, StreamingContext) |
Uloží stav zadaného TreeNode parametru SerializationInfo. |
| Toggle() |
Přepne uzel stromu na rozbalený nebo sbalený stav. |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Naplní objekt informací o serializaci dat potřebnými k serializaci objektu TreeNode. |