Partager via


TreeNode Classe

Définition

Représente un nœud d’un 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
Héritage
Dérivé
Attributs
Implémente

Exemples

L’exemple de code suivant affiche les informations client dans un TreeView contrôle. Les nœuds d’arborescence racine affichent les noms des clients et les nœuds d’arborescence enfants affichent les numéros de commande attribués à chaque client. Dans cet exemple, 1 000 clients sont affichés avec 15 commandes chacune. La réinitialisation de l’objet TreeView est supprimée à l’aide BeginUpdate des méthodes et EndUpdate des méthodes, et une attente Cursor s’affiche pendant que les TreeView objets sont créés et peints TreeNode . Cet exemple nécessite que vous disposiez d’un Customer objet qui peut contenir une collection d’objets Order . Il nécessite également que vous ayez créé une instance d’un TreeView contrôle sur un 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

Remarques

La Nodes collection contient tous les objets enfants TreeNode affectés au fichier actif TreeNode. Vous pouvez ajouter, supprimer ou cloner un TreeNode; lorsque vous effectuez cette opération, tous les nœuds d’arborescence enfants sont ajoutés, supprimés ou clonés. Chacun TreeNode peut contenir une collection d’autres TreeNode objets. Cela peut compliquer la détermination de l’emplacement où vous vous trouvez lors de l’itération TreeView dans la collection. Pour déterminer votre emplacement dans une arborescence, utilisez la FullPath propriété. La FullPath chaîne peut être analysée à l’aide de la PathSeparator valeur de chaîne pour déterminer où une TreeNode étiquette commence et se termine.

L’étiquette TreeNode est définie en définissant explicitement la Text propriété. L’alternative consiste à créer le nœud d’arborescence à l’aide de l’un TreeNode des constructeurs qui a un paramètre de chaîne qui représente la Text propriété. L’étiquette s’affiche en regard de l’image TreeNode , si elle est affichée.

Pour afficher des images en regard des nœuds d’arborescence, affectez une ImageList à la ImageList propriété du contrôle parent TreeView et attribuez-en Image référençant sa valeur d’index dans la ImageList propriété. Définissez la propriété sur la ImageIndex valeur d’index de l’objet Image à afficher lorsque celui-ci TreeNode est dans un état non sélectionné. De même, définissez la SelectedImageIndex propriété sur la valeur d’index de l’objet Image que vous souhaitez afficher lorsque celle-ci TreeNode est sélectionnée.

La sélection de nœuds d’arborescence spécifiques et l’itération dans la Nodes collection peuvent être obtenues à l’aide des valeurs de propriété suivantes : FirstNode, , LastNode, NextNode, PrevNode, NextVisibleNode. PrevVisibleNode Affectez l’une TreeNode des propriétés mentionnées ci-dessus à la TreeView.SelectedNode propriété pour sélectionner ce nœud d’arborescence dans le TreeView contrôle.

Les nœuds d’arborescence peuvent être développés pour afficher le niveau suivant des nœuds d’arborescence enfants. L’utilisateur peut développer le TreeNode bouton en appuyant sur le bouton plus (+) en regard du TreeNodebouton , si celui-ci est affiché, ou vous pouvez le développer TreeNode en appelant la Expand méthode. Pour développer tous les niveaux de nœud d’arborescence enfant dans la Nodes collection, appelez la ExpandAll méthode. Vous pouvez réduire le niveau enfant TreeNode en appelant la Collapse méthode, ou l’utilisateur peut appuyer sur le bouton moins (-) en regard de celui-ci TreeNode, si celui-ci est affiché. Vous pouvez également appeler la Toggle méthode pour alterner les TreeNode états développés et réduits.

Les nœuds d’arborescence peuvent éventuellement afficher une case à cocher. Pour afficher les cases à cocher, définissez la CheckBoxes propriété sur trueTreeView . La Checked propriété est définie true pour les nœuds d’arborescence qui sont dans un état vérifié.

Constructeurs

Nom Description
TreeNode()

Initialise une nouvelle instance de la classe TreeNode.

TreeNode(SerializationInfo, StreamingContext)

Initialise une nouvelle instance de la TreeNode classe à l’aide des informations et du contexte de sérialisation spécifiés.

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

Initialise une nouvelle instance de la TreeNode classe avec le texte d’étiquette spécifié, les nœuds d’arborescence enfants et les images à afficher lorsque le nœud d’arborescence est dans un état sélectionné et non sélectionné.

TreeNode(String, Int32, Int32)

Initialise une nouvelle instance de la TreeNode classe avec le texte et les images d’étiquette spécifiés à afficher lorsque le nœud d’arborescence est dans un état sélectionné et non sélectionné.

TreeNode(String, TreeNode[])

Initialise une nouvelle instance de la TreeNode classe avec le texte d’étiquette et les nœuds d’arborescence enfants spécifiés.

TreeNode(String)

Initialise une nouvelle instance de la TreeNode classe avec le texte d’étiquette spécifié.

Propriétés

Nom Description
BackColor

Obtient ou définit la couleur d’arrière-plan du nœud d’arborescence.

Bounds

Obtient les limites du nœud d’arborescence.

Checked

Obtient ou définit une valeur indiquant si le nœud d’arborescence est dans un état vérifié.

ContextMenu

Obtient le menu contextuel associé à ce nœud d’arborescence.

ContextMenuStrip

Obtient ou définit le menu contextuel associé à ce nœud d’arborescence.

FirstNode

Obtient le premier nœud d’arborescence enfant dans la collection de nœuds d’arborescence.

ForeColor

Obtient ou définit la couleur de premier plan du nœud d’arborescence.

FullPath

Obtient le chemin d’accès du nœud d’arborescence racine au nœud d’arborescence actuel.

Handle

Obtient le handle du nœud d’arborescence.

ImageIndex

Obtient ou définit la valeur d’index de la liste d’images de l’image affichée lorsque le nœud d’arborescence est dans l’état non sélectionné.

ImageKey

Obtient ou définit la clé de l’image associée à ce nœud d’arborescence lorsque le nœud est dans un état non sélectionné.

Index

Obtient la position du nœud d’arborescence dans la collection de nœuds d’arborescence.

IsEditing

Obtient une valeur indiquant si le nœud d’arborescence est dans un état modifiable.

IsExpanded

Obtient une valeur indiquant si le nœud d’arborescence est dans l’état développé.

IsSelected

Obtient une valeur indiquant si le nœud d’arborescence est dans l’état sélectionné.

IsVisible

Obtient une valeur indiquant si le nœud d’arborescence est visible ou partiellement visible.

LastNode

Obtient le dernier nœud d’arborescence enfant.

Level

Obtient la profondeur de base zéro du nœud d’arborescence dans le TreeView contrôle.

Name

Obtient ou définit le nom du nœud d’arborescence.

NextNode

Obtient le nœud d’arborescence frère suivant.

NextVisibleNode

Obtient le nœud d’arborescence visible suivant.

NodeFont

Obtient ou définit la police utilisée pour afficher le texte sur l’étiquette de nœud d’arborescence.

Nodes

Obtient la collection d’objets TreeNode affectés au nœud d’arborescence actuel.

Parent

Obtient le nœud d’arborescence parent du nœud d’arborescence actuel.

PrevNode

Obtient le nœud d’arbre frère précédent.

PrevVisibleNode

Obtient le nœud d’arborescence visible précédent.

SelectedImageIndex

Obtient ou définit la valeur d’index de la liste d’images de l’image affichée lorsque le nœud d’arborescence est dans l’état sélectionné.

SelectedImageKey

Obtient ou définit la clé de l’image affichée dans le nœud d’arborescence lorsqu’elle est dans un état sélectionné.

StateImageIndex

Obtient ou définit l’index de l’image utilisée pour indiquer l’état du TreeNode moment où le parent TreeView a sa CheckBoxes propriété définie falsesur .

StateImageKey

Obtient ou définit la clé de l’image utilisée pour indiquer l’état du TreeNode moment où le parent TreeView a sa CheckBoxes propriété définie falsesur .

Tag

Obtient ou définit l’objet qui contient des données sur le nœud d’arborescence.

Text

Obtient ou définit le texte affiché dans l’étiquette du nœud d’arborescence.

ToolTipText

Obtient ou définit le texte qui s’affiche lorsque le pointeur de la souris pointe sur un TreeNode.

TreeView

Obtient l’arborescence parente à laquelle le nœud d’arbre est affecté.

Méthodes

Nom Description
BeginEdit()

Lance la modification de l’étiquette de nœud d’arbre.

Clone()

Copie le nœud d’arborescence et l’intégralité de la sous-arborescence enracinée à ce nœud d’arborescence.

Collapse()

Réduit le nœud d’arborescence.

Collapse(Boolean)

Réduit et TreeNode réduit éventuellement ses enfants.

CreateObjRef(Type)

Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
Deserialize(SerializationInfo, StreamingContext)

Charge l’état du TreeNode fichier à partir de l’objet spécifié SerializationInfo.

EndEdit(Boolean)

Termine la modification de l’étiquette de nœud d’arborescence.

EnsureVisible()

Garantit que le nœud d’arborescence est visible, développe les nœuds d’arborescence et fait défiler le contrôle d’arborescence si nécessaire.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
Expand()

Développe le nœud d’arborescence.

ExpandAll()

Développe tous les nœuds d’arborescence enfants.

FromHandle(TreeView, IntPtr)

Retourne le nœud d’arborescence avec le handle spécifié et affecté au contrôle d’arborescence spécifié.

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetLifetimeService()
Obsolète.

Récupère l’objet de service de durée de vie actuel qui contrôle la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
GetNodeCount(Boolean)

Retourne le nombre de nœuds d’arborescence enfants.

GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
InitializeLifetimeService()
Obsolète.

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l’objet actuel MarshalByRefObject .

(Hérité de MarshalByRefObject)
Remove()

Supprime le nœud d’arborescence actuel du contrôle d’arborescence.

Serialize(SerializationInfo, StreamingContext)

Enregistre l’état du TreeNode fichier dans le fichier spécifié SerializationInfo.

Toggle()

Bascule le nœud d’arborescence à l’état développé ou réduit.

ToString()

Retourne une chaîne qui représente l’objet actuel.

Implémentations d’interfaces explicites

Nom Description
ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Remplit un objet d’informations de sérialisation avec les données nécessaires pour sérialiser le TreeNode.

S’applique à

Voir aussi