Freigeben über


TreeNode Klasse

Definition

Stellt einen Knoten einer TreeView dar.

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
Vererbung
Abgeleitet
Attribute
Implementiert

Beispiele

Im folgenden Codebeispiel werden Kundeninformationen in einem TreeView Steuerelement angezeigt. Die Stammbaumknoten zeigen Kundennamen an, und die untergeordneten Strukturknoten zeigen die Bestellnummern an, die jedem Kunden zugewiesen sind. In diesem Beispiel werden 1.000 Kunden mit jeweils 15 Bestellungen angezeigt. Die Neulackierung von TreeView wird mit den BeginUpdate Methoden und EndUpdate unterdrückt, und es wird eine Wartezeit Cursor angezeigt, während die TreeView Objekte erstellt und malt TreeNode . Dieses Beispiel erfordert, dass Sie über ein Customer -Objekt verfügen, das eine Auflistung von Order -Objekten enthalten kann. Außerdem ist es erforderlich, dass Sie eine Instanz eines TreeView -Steuerelements auf einem Formerstellt haben.

// 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

Hinweise

Die Nodes Auflistung enthält alle untergeordneten TreeNode Objekte, die dem aktuellen TreeNodezugewiesen sind. Sie können eine TreeNodehinzufügen, entfernen oder klonen. Wenn Sie dies tun, werden alle untergeordneten Strukturknoten hinzugefügt, entfernt oder geklont. Jedes TreeNode kann eine Auflistung anderer TreeNode Objekte enthalten. Dies kann es schwierig machen, zu bestimmen, wo Sie sich beim Durchlaufen der TreeView Sammlung befinden. Verwenden Sie die FullPath -Eigenschaft, um Ihren Standort in einer Struktur zu bestimmen. Die FullPath Zeichenfolge kann mithilfe des PathSeparator Zeichenfolgenwerts analysiert werden, um zu bestimmen, wo eine TreeNode Bezeichnung beginnt und endet.

Die TreeNode Bezeichnung wird durch explizites Festlegen der Text Eigenschaft festgelegt. Die Alternative besteht darin, den Strukturknoten mit einem der Konstruktoren zu erstellen, der TreeNode über einen Zeichenfolgenparameter verfügt, der die Text Eigenschaft darstellt. Die Bezeichnung wird neben dem TreeNode Bild angezeigt, sofern eine angezeigt wird.

Um Bilder neben den Strukturknoten anzuzeigen, weisen Sie der ImageList Eigenschaft des übergeordneten TreeView Steuerelements ein ImageList zu, und weisen Sie einen zu, Image indem Sie auf dessen Indexwert in der ImageList -Eigenschaft verweisen. Legen Sie die ImageIndex -Eigenschaft auf den Indexwert des fest, den Image Sie anzeigen möchten, wenn sich der TreeNode in einem nicht ausgewählten Zustand befindet. Legen Sie die SelectedImageIndex -Eigenschaft ebenfalls auf den Indexwert des fest, der Image angezeigt werden soll, wenn ausgewählt TreeNode ist.

Das Auswählen bestimmter Strukturknoten und das Durchlaufen der Nodes Auflistung kann mithilfe der folgenden Eigenschaftswerte erreicht werden: FirstNode, LastNode, NextNode, PrevNode, NextVisibleNode, . PrevVisibleNode Weisen Sie der Eigenschaft die TreeNode von einer der oben genannten Eigenschaften zurückgegebenen zu TreeView.SelectedNode , um diesen Strukturknoten im TreeView Steuerelement auszuwählen.

Strukturknoten können erweitert werden, um die nächste Ebene untergeordneter Strukturknoten anzuzeigen. Der Benutzer kann die TreeNode erweitern, indem sie die Plustaste (+) neben drücken TreeNode, wenn eine angezeigt wird, oder Sie können die TreeNode erweitern, indem Sie die Expand -Methode aufrufen. Um alle untergeordneten Knotenebenen in der Nodes Auflistung zu erweitern, rufen Sie die -Methode auf ExpandAll . Sie können die untergeordnete TreeNode Ebene reduzieren, indem Sie die Collapse -Methode aufrufen, oder der Benutzer kann die Minustaste (-) neben drücken TreeNode, wenn eine angezeigt wird. Sie können die Toggle -Methode auch aufrufen, um zwischen dem TreeNode erweiterten und reduzierten Status zu wechseln.

Strukturknoten können optional ein Kontrollkästchen anzeigen. Um die Kontrollkästchen anzuzeigen, legen Sie die CheckBoxes -Eigenschaft von TreeView auf fest true. Die Checked -Eigenschaft wird für Strukturknoten, die sich in einem überprüften Zustand befinden, auf true festgelegt.

Konstruktoren

TreeNode()

Initialisiert eine neue Instanz der TreeNode-Klasse.

TreeNode(SerializationInfo, StreamingContext)

Initialisiert eine neue Instanz der TreeNode-Klasse mit den angegebenen Serialisierungsinformationen und dem angegebenen Serialisierungskontext.

TreeNode(String)

Initialisiert eine neue Instanz der TreeNode-Klasse mit dem angegebenen Bezeichnungstext.

TreeNode(String, Int32, Int32)

Initialisiert eine neue Instanz der TreeNode-Klasse mit dem angegebenen Bezeichnungstext sowie den angegebenen Bildern, die den ausgewählten bzw. den nicht ausgewählten Zustand des Strukturknotens anzeigen sollen.

TreeNode(String, Int32, Int32, TreeNode[])

Initialisiert eine neue Instanz der TreeNode-Klasse mit dem angegebenen Bezeichnungstext sowie den angegebenen untergeordneten Strukturknoten und den Bildern, die den ausgewählten bzw. nicht ausgewählten Zustand des Strukturknotens anzeigen sollen.

TreeNode(String, TreeNode[])

Initialisiert eine neue Instanz der TreeNode-Klasse mit dem angegebenen Bezeichnungstext und den angegebenen untergeordneten Strukturknoten.

Eigenschaften

BackColor

Ruft die Hintergrundfarbe des Strukturknotens ab oder legt diese fest.

Bounds

Ruft die Begrenzungen des Strukturknotens ab.

Checked

Ruft einen Wert ab, der angibt, ob der Strukturknoten aktiviert ist, oder legt diesen fest.

ContextMenu

Ruft das diesem Strukturknoten zugeordnete Kontextmenü ab.

ContextMenuStrip

Ruft das diesem Strukturknoten zugeordnete Kontextmenü ab oder legt dieses fest.

FirstNode

Ruft den ersten untergeordneten Strukturknoten in der Auflistung der Strukturknoten ab.

ForeColor

Ruft die Vordergrundfarbe des Strukturknotens ab oder legt diese fest.

FullPath

Ruft den Pfad vom Stammknoten zum aktuellen Strukturknoten ab.

Handle

Ruft das Handle des Strukturknotens ab.

ImageIndex

Ruft den Indexwert des Bildes in der Bildliste ab, das für einen nicht ausgewählten Strukturknoten angezeigt wird, oder legt diesen fest.

ImageKey

Ruft den Schlüssel für das diesem Strukturknoten zugeordnete Bild ab, wenn der Knoten nicht ausgewählt ist, oder legt diesen fest.

Index

Ruft die Position des Strukturknotens in der Auflistung der Strukturknoten ab.

IsEditing

Ruft einen Wert ab, der angibt, ob sich der Strukturknoten in einem bearbeitbaren Zustand befindet.

IsExpanded

Ruft einen Wert ab, der angibt, ob der Strukturknoten erweitert ist.

IsSelected

Ruft einen Wert ab, der angibt, ob der Strukturknoten ausgewählt ist.

IsVisible

Ruft einen Wert ab, der angibt, ob der Strukturknoten vollständig oder teilweise sichtbar ist.

LastNode

Ruft den letzten untergeordneten Strukturknoten ab.

Level

Ruft die nullbasierte Tiefe des Strukturknotens im TreeView-Steuerelement ab.

Name

Ruft den Namen des Strukturknotens ab oder legt diesen fest.

NextNode

Ruft den nächsten nebengeordneten Strukturknoten ab.

NextVisibleNode

Ruft den nächsten sichtbaren Strukturknoten ab.

NodeFont

Ruft die Schriftart ab, mit der der Bezeichnungstext des Strukturknotens angezeigt wird, oder legt diese fest.

Nodes

Ruft die Auflistung der TreeNode-Objekte ab, die dem aktuellen Strukturknoten zugewiesen sind.

Parent

Ruft den übergeordneten Strukturknoten des aktuellen Strukturknotens ab.

PrevNode

Ruft den vorherigen nebengeordneten Strukturknoten ab.

PrevVisibleNode

Ruft den vorherigen sichtbaren Strukturknoten ab.

SelectedImageIndex

Ruft den Indexwert des Bildes in der Bildliste ab, das für einen ausgewählten Strukturknoten angezeigt wird, oder legt diesen fest.

SelectedImageKey

Ruft den Schlüssel des Bildes ab, das im Strukturknoten angezeigt wird, wenn dieser ausgewählt ist, oder legt diesen fest.

StateImageIndex

Ruft den Index des Bilds ab, das den Zustand des TreeNode angibt, wenn die TreeView-Eigenschaft der übergeordneten CheckBoxes auf false festgelegt ist, oder legt diesen fest.

StateImageKey

Ruft den Schlüssel des Bilds ab, das den Zustand des TreeNode angibt, wenn die TreeView-Eigenschaft der übergeordneten CheckBoxes auf false festgelegt ist, oder legt diesen fest.

Tag

Ruft das Objekt ab, das Daten über den Strukturknoten enthält, oder legt dieses fest.

Text

Ruft den in der Bezeichnung des Strukturknotens angezeigten Text ab oder legt diesen fest.

ToolTipText

Ruft den Text ab, der angezeigt wird, wenn mit dem Mauszeiger auf einen TreeNode gezeigt wird, oder legt diesen fest.

TreeView

Ruft die übergeordnete Strukturansicht ab, der der Strukturknoten zugewiesen ist.

Methoden

BeginEdit()

Initiiert die Bearbeitung der Strukturknotenbezeichnung.

Clone()

Kopiert die Strukturknoten sowie die gesamte Teilstruktur, die bei diesem Strukturknoten beginnt.

Collapse()

Reduziert den Strukturknoten.

Collapse(Boolean)

Reduziert den TreeNode und optional die zugehörigen untergeordneten Elemente.

CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.

(Geerbt von MarshalByRefObject)
Deserialize(SerializationInfo, StreamingContext)

Lädt den Zustand des TreeNode aus der angegebenen SerializationInfo.

EndEdit(Boolean)

Beendet die Bearbeitung der Strukturknotenbezeichnung.

EnsureVisible()

Stellt sicher, dass der Strukturknoten sichtbar ist, wobei ggf. Strukturknoten erweitert werden und bei Bedarf im Strukturansicht-Steuerelement ein Bildlauf durchgeführt wird.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Expand()

Erweitert den Strukturknoten.

ExpandAll()

Erweitert alle untergeordneten Strukturknoten.

FromHandle(TreeView, IntPtr)

Gibt den Strukturknoten zurück, dem das angegebene Handle zugeordnet ist und der dem angegebenen Strukturansicht-Steuerelement zugewiesen ist.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetNodeCount(Boolean)

Gibt die Anzahl der untergeordneten Strukturknoten zurück.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

(Geerbt von MarshalByRefObject)
Remove()

Entfernt den aktuellen Strukturknoten aus dem Strukturansicht-Steuerelement.

Serialize(SerializationInfo, StreamingContext)

Speichert den Zustand des TreeNode in der angegebenen SerializationInfo.

Toggle()

Wechselt zwischen dem erweiterten und dem reduzierten Zustand des Strukturknotens.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

Explizite Schnittstellenimplementierungen

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Füllt ein Serialisierungsinformationsobjekt mit den Daten auf, die zum Serialisieren des TreeNode erforderlich sind.

Gilt für:

Weitere Informationen