none
TreeView en paramètre RRS feed

  • Question

  • Je souhaite peupler 2 treeviews à partir d'une base sur requête SQL à partir d'un reader selon la hiérachie:

    TOUS

    --- ENFANT1.1

              ENFANT2.1

              ENFANT2.2

    --- ENFANT1.2

     

    Mes deux treeviews sont dans un panel. Je voudrais créer des fonctions permettant de les peupler.

    Pour l'instant je  me contente d'expérimenter avec le code.

    Si j'arrive à récupérer le nom de chaque treeview en écrivant:

    TW_name = Panel_TW.Controls.Item(p).Name

     

     je n'arrive par conte pas a m'en servir pour créer une racine: Le membre public 'Nodes' du type 'String' est introuvable.

     

    For p = 0 To P_TW.Controls.Count - 1

    TW_name = P_TW.Controls.Item(p).Name

     

    Dim RootNode As New TreeNode

    RootNode = TW_name .Nodes.add("TOUS")

    Next

     

    Quelqu'un pourrait il me dire comment m'y prendre?

     

     

    lundi 26 novembre 2007 10:50

Toutes les réponses

  • Bonjour,

    Dans votre exemple TW_name est le associé au TreeView et non l'objet TreeView. Je vous conseille vivement de placer dans les propriétés de votre projet les paramètres "Option Explicit" et "Option Strict" (dans l'onglet Compilation) à "On". Cela permettera d'avoir un certain nombre d'erreur plus parlantes dès la compilation.

     

    Sinon voici un exemple de code permettant de remplir tous les TreeView et se trouvant dans le panel "Panel_TW" :

     

    Extrait de code

    For i = 0 To Panel_TW.Controls.Count - 1

    ' vérifie qu'il s'agit d'un TreeView

    Dim tw As TreeView = TryCast(Panel_TW.Controls(i), TreeView)

    If (tw Is Nothing) Then

    Continue For

    End If

     

    ' noeud racine

    Dim rootNode As TreeNode = tw.Nodes.Add("TOUS")

     

    ' noeud enfant 1.1

    Dim parentNode As TreeNode = rootNode.Nodes.Add("ENFANT 1.1")

     

    ' noeud enfant 2.1 & 2.2

    parentNode.Nodes.Add("ENFANT 2.1")

    parentNode.Nodes.Add("ENFANT 2.2")

     

    ' noeud enfant 1.2

    rootNode.Nodes.Add("ENFANT 1.2")

    Next

     

     

    Guillaume
    lundi 26 novembre 2007 12:38