IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Treeview VB 2008 SOS


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Par défaut Treeview VB 2008 SOS
    Bonsoir,
    J'ai un problème avec mon Treeview. Il affiche les enregistrements de mes tables access auxquel je l'ai connecté, mais seule les premières lignes de chacune de mes colonnes sont déployables.

    Je mets un bout de code qui me fait souffrir

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Try
                i = ComboBox1.Items.Count - 1
     
                For r = 0 To i
                    ComboBox1.SelectedIndex = r
                    DN1 = ComboBox1.Text
                    TreeView1.Nodes.Add(DN1)
                    With TreeView1.Nodes(0)
                        .ImageIndex = 0
                     End With
                Next
     
     
                j = ComboBox2.Items.Count - 1
     
                For s = 0 To j
                    ComboBox2.SelectedIndex = s
                    DNA = ListBox2.Text
                    TreeView1.Nodes(0).Nodes.Add(DNA)
                    With TreeView1.Nodes(0).Nodes(0)
                        .ImageIndex = 0
                    End With
                Next
    Ect.


    Merci d'avance à ceux qui voudront bien m'aider

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    pas tout compris, mais changer le selecteditem pour avoir le texte c'est moche !


    (le with pour une ligne ne sert pas à grand chose)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Par défaut Treeview
    Bonsoir,
    Merci pour ton commentaire
    Mais alors que faudrait-il changer pour avoir le texte.
    Mon but étant de construire un treeview en VB 2008 a partir de plusieurs tables access liées.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    si tes données sont dans access, je ne vois pas pourquoi tu utilises les données dans des combobox

    sinon la propriété item du combobox permet d'avoir la valeur à un index donné
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Par défaut
    Bonjour,
    Merci pour ton aide !
    Justement, suivant tes conseils j'ai reconstruit cette nuit mon affaire en
    allant chercher dans ma base mes lignes ça donne
    pour le niveauB (Table) de la base par exemple :

    (...)
    Dim DtaNiveauB As OleDbDataAdapter
    Dim DtsNiveauB As New DataSet
    Dim RowNB As DataRowView

    'Initialisation de l'instruction SQL
    strSql = "SELECT NiveauA.NiveauA_ID, NiveauB.* FROM NiveauA, NiveauB "

    'Instancer un objet Commande & connexion de l'objet Command
    cmdNiveauB = New OleDbCommand(strSql, cnBP)
    cmdNiveauB.CommandText = strSql
    cmdNiveauB.Connection = cnBP

    'Instancer un objet Adapter
    DtaNiveauB = New OleDbDataAdapter(cmdNiveauB)

    'Avec l'aide de la propriété Fill du DataAdapter charger leDataset()

    DtaNiveauB.Fill(DtsNiveauB, "NiveauBData")

    'Mettre dans un Objet DataTable une table du DataSet et les rows
    dttNiveauB = DtsNiveauB.Tables("NiveauBData")
    dttNiveauB.DefaultView.RowFilter = "NiveauB.NiveauA_ID = NiveauA.NiveauA_ID "

    (...)

    Try
    (...)
    For Each RowNB In dttNiveauB.DefaultView
    TreeView1.Nodes(0).Nodes(0).Nodes.Add(RowNB(4))
    Next

    (...)
    cnBP.Close()
    Catch ex As Exception
    MsgBox(ex.Message, MsgBoxStyle.Critical)
    cnBlueProcess.Close()
    End Try

    End Sub

    ça marche mais toujours comme avant.
    i.e. mes lignes apparaissent de façon exaustives mais seule la première est "expandable" et lorsque je l'expande je vois le contenu de toute la table suivante. Donc mon RowFilter ne marche déja pas. Il faudrait, me semble-t-il, qu'a chaque noeud mon TreeView prenne les childs qui lui appartiennent et construise en conséquence et je sais pas comment faire.
    Et de plus je suis pas du tout sûr de mon analyse?.

    Merci pour ton aide

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    un treeview c'est des treenodes qui peuvent avoir des treenodes
    donc il y a une notion de parent/enfant, mais pas qu'au premier niveau, c'est ca pour les départ et chaque treenode qui est ensuite ajouté

    une fois les treenodes de départ définis (en général ceux dont le parent vaut null) il faut chercher les treenodes enfant de chaque treenode etc...

    y a donc une gestion de récursivité
    si tu veux pas t'embeter à faire quelque chose d'ultra performant, tu peux en effet parcourir plein de fois ton datatable à la recherches des enfant d'un parent
    (la solution la plus performante est une requete récursive, pas géré par access je pense)

    il manque les balises code, donc ton code est pas très lisible, mais il manque soit une boucle soit une sub récursive

    TreeView1.Nodes(0).Nodes(0).Nodes.Add
    il faut ajouter de manière dynamique, pas dans nodes(0) sinon ca ne reflete pas la base de données
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Par défaut
    Merci !
    Je commence à avoir une idée de la gueule que ça doit avoir. Je me lance et te tiend au courant.
    C'est cool de te pencher sur les problèmes des autres...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VS 2008] VB treeview / Datagridview
    Par methylene dans le forum VB.NET
    Réponses: 7
    Dernier message: 06/04/2010, 15h54
  2. VB.NET 2008 Express et treeview
    Par angelevil dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/03/2010, 13h29
  3. SOS Visual Web Developper 2008
    Par mezvin dans le forum Visual Studio Team System
    Réponses: 1
    Dernier message: 15/01/2010, 14h32
  4. Réponses: 1
    Dernier message: 29/09/2009, 11h27
  5. [VB 2008] Collection de noeuds dans un treeview
    Par Faladin dans le forum VB.NET
    Réponses: 8
    Dernier message: 03/07/2008, 22h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo