Partager via


TreeNode Classe

Définition

Représente un nœud de 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
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 chacun. Le repeint du est supprimé à l’aide TreeView des BeginUpdate méthodes et EndUpdate , et une attente Cursor s’affiche pendant que le TreeView crée et peint les TreeNode objets. 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 actif TreeNode. Vous pouvez ajouter, supprimer ou cloner un TreeNode; dans ce cas, 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 rendre difficile de déterminer où vous vous trouvez dans le 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 la Text propriété explicitement. L’alternative consiste à créer le nœud d’arborescence à l’aide de l’un TreeNode des constructeurs qui a un paramètre string qui représente la Text propriété. L’étiquette s’affiche en regard de l’image TreeNode , le cas échéant.

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

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, NextVisibleNodePrevVisibleNode, . Affectez le TreeNode retourné par l’une des propriétés 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 de nœuds d’arborescence enfants. L’utilisateur peut développer le TreeNode en appuyant sur le bouton plus (+) en regard de , TreeNodes’il s’affiche, ou vous pouvez développer le TreeNode en appelant la Expand méthode . Pour développer tous les niveaux de nœuds d’arborescence enfants 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 , TreeNodes’il s’affiche. Vous pouvez également appeler la Toggle méthode pour alterner entre les TreeNode états développés et réduits.

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

Constructeurs

TreeNode()

Initialise une nouvelle instance de la classe TreeNode.

TreeNode(SerializationInfo, StreamingContext)

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

TreeNode(String)

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

TreeNode(String, Int32, Int32)

Initialise une nouvelle instance de la classe TreeNode avec le texte d'étiquette spécifié et les images à afficher quand le nœud d'arbre est dans l'état sélectionné et non sélectionné.

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

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

TreeNode(String, TreeNode[])

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

Propriétés

BackColor

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

Bounds

Obtient les limites du nœud d'arbre.

Checked

Obtient ou définit une valeur indiquant si le nœud d'arbre est dans l'état activé.

ContextMenu

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

ContextMenuStrip

Obtient ou définit le menu contextuel associé à ce nœud d'arbre.

FirstNode

Obtient le premier nœud d'arbre enfant dans la collection de nœuds d'arbre.

ForeColor

Obtient ou définit la couleur de premier plan du nœud d'arbre.

FullPath

Obtient le chemin d'accès du nœud d'arbre racine au nœud d'arbre en cours.

Handle

Obtient le handle du nœud d'arbre.

ImageIndex

Obtient ou définit la valeur d'index de liste de l'image affichée quand le nœud d'arbre est dans l'état non sélectionné.

ImageKey

Obtient ou définit la clé pour l'image associée à ce nœud d'arbre lorsque le nœud est dans un état désélectionné.

Index

Obtient la position du nœud d'arbre dans la collection de nœuds d'arbre.

IsEditing

Obtient une valeur indiquant si le nœud d'arbre est dans l'état modifiable.

IsExpanded

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

IsSelected

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

IsVisible

Obtient une valeur indiquant si le nœud d'arbre est visible ou partiellement visible.

LastNode

Obtient le dernier nœud d'arbre enfant.

Level

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

Name

Obtient ou définit le nom du nœud d'arbre.

NextNode

Obtient le nœud d'arbre frère suivant.

NextVisibleNode

Obtient le nœud d'arbre visible suivant.

NodeFont

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

Nodes

Obtient la collection d'objets TreeNode assignés au nœud d'arbre en cours.

Parent

Obtient le nœud d'arbre parent du nœud d'arbre en cours.

PrevNode

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

PrevVisibleNode

Obtient le nœud d'arbre visible précédent.

SelectedImageIndex

Obtient ou définit la valeur d'index de liste de l'image affichée quand le nœud d'arbre est dans l'état sélectionné.

SelectedImageKey

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

StateImageIndex

Obtient ou définit l'index de l'image utilisée pour indiquer l'état du TreeNode lorsque la propriété TreeView du CheckBoxes parent a la valeur false.

StateImageKey

Obtient ou définit la clé de l'image utilisée pour indiquer l'état du TreeNode lorsque la propriété TreeView du CheckBoxes parent a la valeur false.

Tag

Obtient ou définit l'objet qui contient les données relatives au nœud d'arbre.

Text

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

ToolTipText

Obtient ou définit le texte qui apparaît lorsque le pointeur de la souris est placé sur TreeNode.

TreeView

Obtient l'arborescence parente à laquelle le nœud d'arbre est assigné.

Méthodes

BeginEdit()

Démarre la modification de l'étiquette du nœud d'arbre.

Clone()

Copie le nœud d'arbre et l'ensemble du sous-arbre rattaché à ce nœud d'arbre.

Collapse()

Réduit le nœud d'arbre.

Collapse(Boolean)

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

CreateObjRef(Type)

Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant.

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

Charge l'état du TreeNode à partir du SerializationInfo.

EndEdit(Boolean)

Termine la modification de l'étiquette du nœud d'arbre.

EnsureVisible()

Garantit que le nœud d'arbre est visible, en développant les nœuds d'arbre et en faisant défiler le contrôle TreeView.

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'arbre.

ExpandAll()

Développe tous les nœuds d'arbre enfants.

FromHandle(TreeView, IntPtr)

Retourne le nœud d'arbre assigné au handle spécifié et assigné au contrôle TreeView spécifié.

GetHashCode()

Fait office 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 en cours 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'arbre enfants.

GetType()

Obtient le 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 Object actuel.

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

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

(Hérité de MarshalByRefObject)
Remove()

Supprime le nœud d'arbre en cours du contrôle TreeView.

Serialize(SerializationInfo, StreamingContext)

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

Toggle()

Fait basculer le nœud d'arbre entre l'état développé ou réduit.

ToString()

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

Implémentations d’interfaces explicites

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

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

S’applique à

Voir aussi