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>]
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íkovi v ovládacím TreeView prvku. Uzly kořenového stromu zobrazují jména zákazníků a uzly podřízeného stromu zobrazují čísla objednávek přiřazená každému zákazníkovi. V tomto příkladu se zobrazí 1 000 zákazníků s 15 objednávkami. Překreslení TreeNode objektu TreeView je potlačeno pomocí BeginUpdate metod a EndUpdate a při vytváření a malování objektů se zobrazí TreeView čekáníCursor. Tento příklad vyžaduje, abyste měli Customer objekt, který může obsahovat kolekci Order objektů. Vyžaduje také, abyste vytvořili instanci TreeView ovládacího prvku v 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 TreeNode; všechny uzly podřízeného stromu se přidají, odeberou nebo naklonují. Každý z nich TreeNode může obsahovat kolekci dalších TreeNode objektů. To může ztížit určení, kde se při TreeView iteraci kolekcí nacházíte. 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 se nastavuje explicitním Text nastavením 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í.

Chcete-li 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 objekt Image odkazem na hodnotu jeho indexu ImageList ve vlastnosti . ImageIndex Nastavte vlastnost na hodnotu indexu objektuImage, který 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 kolekcí Nodes se dá dosáhnout pomocí následujících hodnot vlastností: FirstNode, LastNode, , NextNode, PrevNode, NextVisibleNode, . PrevVisibleNode TreeNode Přiřaďte vlastnost vrácenou jednou z výše uvedených vlastností k TreeView.SelectedNode vlastnosti , abyste vybrali uzel stromu v ovládacím TreeView prvku.

Uzly stromové struktury je možné rozbalit a zobrazit tak další úroveň uzlů podřízeného stromu. Uživatel může rozbalit TreeNode stisknutím tlačítka plus (+) vedle TreeNode, pokud se zobrazí, nebo můžete rozbalit TreeNode voláním Expand metody . Pokud chcete 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 TreeNode, pokud se zobrazí. Můžete také volat metodu Toggle , která střídá TreeNode mezi rozbaleným a sbaleným stavem.

Uzly stromové struktury můžou volitelně zobrazit zaškrtávací políčko. Pokud chcete zobrazit zaškrtávací políčka, nastavte CheckBoxes vlastnost objektu TreeView na truehodnotu . Pro Checked uzly stromové struktury, které jsou ve zaškrtnutém stavu, je vlastnost nastavená na true hodnotu .

Konstruktory

TreeNode()

Inicializuje novou instanci TreeNode třídy .

TreeNode(SerializationInfo, StreamingContext)

Inicializuje novou instanci TreeNode třídy pomocí zadané serializace informace a kontextu.

TreeNode(String)

Inicializuje novou instanci TreeNode třídy se zadaným textem popisku.

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, Int32, Int32, TreeNode[])

Inicializuje novou instanci TreeNode třídy se zadaným textem popisku, uzly podřízeného stromu 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.

Vlastnosti

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 uzel stromu je v kontrolovaném stavu.

ContextMenu

Získá místní nabídku, která je přidružena k tomuto uzlu stromu.

ContextMenuStrip

Získá nebo nastaví místní nabídku přidruženou k tomuto uzlu stromu.

FirstNode

Získá první podřízený strom uzel v kolekci uzlu stromu.

ForeColor

Získá nebo nastaví barvu popředí uzlu stromu.

FullPath

Získá cestu z uzlu kořenového 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 při uzlu stromu je v nevybraném stavu.

ImageKey

Získá nebo nastaví klíč pro image přidružené k tomuto uzlu stromu, když uzel je v nevybraném stavu.

Index

Získá pozici uzlu stromu v kolekci uzlu stromu.

IsEditing

Získá hodnotu označující, zda uzel stromu je v upravitelném stavu.

IsExpanded

Získá hodnotu označující, zda je uzel stromu v rozbaleném stavu.

IsSelected

Získá hodnotu označující, zda je uzel stromu ve vybraném stavu.

IsVisible

Získá hodnotu označ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 v popisku uzlu stromu.

Nodes

Získá kolekci TreeNode objektů přiřazených k aktuálnímu uzlu stromu.

Parent

Získá uzel nadřazeného 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ž uzel stromu je ve vybraném stavu.

SelectedImageKey

Získá nebo nastaví klíč obrázku zobrazeného v uzlu stromu, pokud 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 nastavenou na false.

StateImageKey

Získá nebo nastaví klíč image, která se používá k označení stavu TreeNode , když nadřazený TreeView objekt má jeho CheckBoxes vlastnost nastavenou 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 na TreeNode.

TreeView

Získá nadřazené stromové zobrazení, ke kterému je přiřazen uzel stromu.

Metody

BeginEdit()

Zahájí úpravy popisku uzlu stromu.

Clone()

Zkopíruje uzel stromu a celý podstrom rootovaný na tomto uzlu stromové struktury.

Collapse()

Sbalí uzel stromu.

Collapse(Boolean)

Sbalí TreeNode objekt a volitelně sbalí jeho podřízené položky.

CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy sloužící ke komunikaci se vzdáleným objektem.

(Zděděno od MarshalByRefObject)
Deserialize(SerializationInfo, StreamingContext)

Načte stav ze TreeNode zadaného SerializationInfo.

EndEdit(Boolean)

Ukončí úpravy popisku uzlu stromu.

EnsureVisible()

Zajišťuje viditelnost uzlu stromové struktury, rozbalení uzlů stromu a posouvání ovládacího prvku stromového zobrazení podle potřeby.

Equals(Object)

Určí, zda se zadaný objekt rovná 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í hashovací funkce.

(Zděděno od Object)
GetLifetimeService()
Zastaralé.

Načte aktuální životnost objektu služby, 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()

Type Získá z aktuální instance.

(Zděděno od Object)
InitializeLifetimeService()
Zastaralé.

Získá životnost objektu služby, který řídí zásady životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(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 do TreeNode zadaného 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í

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Naplní objekt serializace informací dat potřebnými k serializaci objektu TreeNode.

Platí pro

Viz také