TreeNode, classe (System.Windows.Forms)

Bibliothèque de classes .NET Framework 
TreeNode, classe 

Représente un n?ud de TreeView.

Espace de noms : System.Windows.Forms
Assembly : System.Windows.Forms (dans system.windows.forms.dll)

SyntaxeSyntaxe


Visual Basic (Déclaration)
<SerializableAttribute> _
Public Class TreeNode
    Inherits MarshalByRefObject
    Implements ICloneable, ISerializable


Visual Basic (Utilisation)
Dim instance As TreeNode


C#
[SerializableAttribute] 
public class TreeNode : MarshalByRefObject, ICloneable, ISerializable


C++
[SerializableAttribute] 
public ref class TreeNode : public MarshalByRefObject, ICloneable, ISerializable


J#
/** @attribute SerializableAttribute() */ 
public class TreeNode extends MarshalByRefObject implements ICloneable, ISerializable


JScript
SerializableAttribute 
public class TreeNode extends MarshalByRefObject implements ICloneable, ISerializable
NotesNotes

La collection Nodes contient tous les objets TreeNode enfants assignés au TreeNode en cours. Vous pouvez ajouter, supprimer ou cloner un TreeNode ; tous les n?uds d'arbre enfants sont ajoutés, supprimés ou clonés lors de ces opérations. Chaque TreeNode peut contenir une collection d'autres objets TreeNode. Par conséquent, il peut être difficile de déterminer si vous êtes dans TreeView quand vous parcourez la collection. Pour déterminer votre position dans une arborescence, utilisez la propriété FullPath. La chaîne FullPath peut être analysée en utilisant la valeur de chaîne PathSeparator pour déterminer le début et la fin d'une étiquette TreeNode.

Pour définir l'étiquette TreeNode, définissez explicitement l'étiquette Text. Sinon, vous pouvez créer le n?ud d'arbre en utilisant l'un des constructeurs TreeNode qui comportent un paramètre de chaîne qui représente la propriété Text. L'étiquette est affichée à côté de l'image TreeNode affichée, le cas échéant.

Pour afficher des images à côté des n?uds d'arbre, assignez un objet ImageList à la propriété ImageList du contrôle TreeView parent et assignez Image en référençant sa valeur d'index dans la propriété ImageList. Affectez à la propriété ImageIndex la valeur d'index du Image que vous souhaitez afficher quand TreeNode est dans l'état non sélectionné. De façon similaire, affectez à la propriété SelectedImageIndex la valeur d'index du Image que vous souhaitez afficher quand TreeNode est dans l'état sélectionné.

Vous pouvez sélectionner des n?uds d'arbre et parcourir la collection Nodes en utilisant les valeurs des propriétés suivantes : FirstNode, LastNode, NextNode, PrevNode, NextVisibleNode, PrevVisibleNode. Assignez le TreeNode retourné par l'une des propriétés ci-dessus à la propriété TreeView.SelectedNode pour sélectionner le n?ud d'arbre dans le contrôle TreeView.

Les n?uds d'arbre peuvent être développés pour afficher le niveau suivant de n?uds d'arbre enfants. L'utilisateur peut développer TreeNode en appuyant sur le bouton (+) à côté du TreeNode affiché, le cas échéant, ou bien vous pouvez développer TreeNode en appelant la méthode Expand. Pour développer tous les n?uds d'arbre enfants dans la collection Nodes, appelez la méthode ExpandAll. Vous pouvez réduire le niveau des TreeNode enfants en appelant la méthode Collapse, ou bien appuyer sur le bouton (-) à côté du TreeNode affiché, le cas échéant. Vous pouvez également appeler la méthode Toggle pour basculer TreeNode entre les états réduit et développé.

Les n?uds d'arbre peuvent éventuellement comporter une case à cocher. Pour afficher les cases à cocher, affectez la valeur true à la propriété CheckBoxes de TreeView. La propriété Checked a la valeur true pour les n?uds d'arbre qui sont dans l'état activé.

Remarques à l'attention des héritiers Comme la classe TreeNode implémente l'interface ISerializable, les classes dérivées destinées à être sérialisables doivent également implémenter cette interface et les constructeurs spéciaux comme cela est décrit dans Sérialisation personnalisée.

ExempleExemple

L'exemple de code suivant affiche les informations client dans un contrôle TreeView. Les n?uds d'arbre racine affichent les noms des clients, tandis que les n?uds d'arbre enfants affichent les numéros de commande assignés à chaque client. Dans cet exemple, 1000 clients sont affichés avec 15 commandes chacun. Les méthodes BeginUpdate et EndUpdate permettent d'éviter que TreeView ne soit repeint et un Cursor d'attente est affiché pendant que TreeView crée et peint les objets TreeNode. Cet exemple suppose que vous disposez d'un objet Customer qui peut contenir une collection d'objets Order. Il suppose également que vous avez créé une instance d'un contrôle TreeView sur un Form.



Visual Basic
' 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 'FillMyTreeView


C#
// 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();
}


C++
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.
   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();
}


J#
// 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"
            + ((Int32)x).ToString()));
    }
    // Add orders to each Customer object in the ArrayList.
    for (int iCtr = 0; iCtr < customerArray.get_Count(); iCtr++) {
        Customer customer1 = (Customer)customerArray.get_Item(iCtr);
        for (int y = 0; y < 15; y++) {
            customer1.get_CustomerOrders().Add(new Order("Order"
                + ((Int32)y).ToString()));
        }
    }
    // Display a wait cursor while the TreeNodes are being created.
    get_Cursor().set_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.get_Nodes().Clear();
    // Add a root TreeNode for each Customer object in the ArrayList.
    for (int iCtr1 = 0; iCtr1 < customerArray.get_Count(); iCtr1++) {
        Customer customer2 = (Customer)customerArray.get_Item(iCtr1);
        treeView1.get_Nodes().Add(new TreeNode(customer2.get_CustomerName()));
        // Add a child treenode for each Order object in the current
        // Customer object.
        for (int iCtr2 = 0; iCtr2 < customer2.get_CustomerOrders().
            get_Count(); iCtr2++) {
            Order order1 = (Order)customer2.get_CustomerOrders().
                get_Item(iCtr2);
            treeView1.get_Nodes().
                get_Item(customerArray.IndexOf(customer2)).get_Nodes().
                Add(new TreeNode(customer2.get_CustomerName() + "."
                + order1.get_OrderID()));
        }
    }
    // Reset the cursor to the default for all controls.
    get_Cursor().set_Current(Cursors.get_Default());
    // Begin repainting the TreeView.
    treeView1.EndUpdate();
} //FillMyTreeView
Hiérarchie d'héritageHiérarchie d'héritage
Sécurité des threadsSécurité des threads
Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Plates-formesPlates-formes

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

Informations de versionInformations de version

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0
Voir aussiVoir aussi

Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.treenode.aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

9 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-4336
Document créé le 14/10/06 23:48, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-system.windows.forms.treenode.html Document affiché 1 fois ce mois de Juin.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,34 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
L'internet est si grand, si puissant et si inutile que pour certaines personnes c'est un parfait substitut à la vie.

Andrew Brown
 
l'infobrol
Nous sommes le Vendredi 01 Juin 2012, 05:44, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)