Sdílet prostřednictvím


TreeNode Třída

Definice

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 false.

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 false.

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.

Platí pro

Viz také