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

VB 6 et antérieur Discussion :

VB6 - Masquer ou Afficher certain(s) noeud(s) d'un Treeview


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 40
    Par défaut VB6 - Masquer ou Afficher certain(s) noeud(s) d'un Treeview
    Bonjour,

    dans un objet treeview, est t'il possible de masquer un noeud de l'arborescence affichée

    je voudrais garder l'arborescence créée mais éventuellement masquer certains noeuds selon le contexte d'utilisation...

    Cela me semblait trivial, mais je ne sais pas si cela est possible

    D'avance Merci

  2. #2
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TreeView1.Nodes("NodeKey").Visible=false

  3. #3
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 40
    Par défaut
    ???

    si j'applique à la lettre le conseil :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TreeView1.Nodes("NodeKey").Visible=false
    J'obtiens une MsgBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur '383'
    La propriété est en lecture seule

  4. #4
    Membre actif Avatar de blaiso
    Profil pro
    Banquier
    Inscrit en
    Décembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Banquier

    Informations forums :
    Inscription : Décembre 2005
    Messages : 97
    Par défaut
    salut,

    j'ai essayé de le faire, je me suis buté au même message avec le meme code.

    moi j'ai plustot contourné la difficulté en posant des conditions (if ...then ..else ou les 'case') en fonction du pourquoi tu veux masquer certains noeuds.
    donc tu charges tes noueds selon la condition.

    je preneur pour une meilleure solution.


  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    J'arrive comme un cheveu dans la soupe et vous prie de m'excuser.

    J'ai fouillé dans mes "vieux tiroirs" (anciens de plus de 10 ans), comment j'avais résolu un tel problème. Hélàs sans succès (je ne sais plus où j'ai fourré tout celà et il ne me reste plus que ma pauvre mémoire):

    Il me semble donc (je dis bien semble) que j'avais utilisé la méthode EnsureVisible (qui était capable d'envoyer ou retourner True ou False, selon ce que l'on voulait)...

    Cà vaut peut-être la peine de s'intéresser à cette méthode, non ???

    Juste une idée, comme çà...


  6. #6
    Membre actif Avatar de blaiso
    Profil pro
    Banquier
    Inscrit en
    Décembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Banquier

    Informations forums :
    Inscription : Décembre 2005
    Messages : 97
    Par défaut
    Citation Envoyé par jmfmarques
    J'arrive comme un cheveu dans la soupe et vous prie de m'excuser.
    pas besoin, toutes les contributions sont les bienvenues.

    Citation Envoyé par jmfmarques
    Il me semble donc (je dis bien semble) que j'avais utilisé la méthode EnsureVisible (qui était capable d'envoyer ou retourner True ou False, selon ce que l'on voulait)...

    Cà vaut peut-être la peine de s'intéresser à cette méthode, non ???
    malheureusement, cette méthode, de prime à bord, est capable de retourner un Vrai ou Faux. Mais dans le cas présent, il génère une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Un appel de fonction sur la partie gauche d'une affectation doit renvoyer un type variant ou un objet
    et même si ça marchait, elle ne servirait pas beaucoup, puisqu'elle servirait à faire apparaitre un plus (+) au chargement du treeview. et lorsqu'on cliquerait dessus, le noeud s'étendrait.
    or le pb est de masquer ce dernier.

  7. #7
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    tu pourrais peut etre utiliser l'evenement Expand du treeview

    cet exemple empeche l'expansion du 3eme noeud

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TreeView1_Expand(ByVal Node As ComctlLib.Node)
    If Node.Index = 3 Then Node.Expanded = False
    End Sub

    bonne soiree
    michel

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    J'allais proposer quelqie chose de similaire (rendre non selectionné le noeud sélectionné) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    const nono = 5 'par exemple
     
    Private Sub TreeView1_Click()
      TreeView1.Nodes(nono).Selected = False
    End sub
    mais il est toujours visible bien que non sélectionnable !!!

    :

  9. #9
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 40
    Par défaut
    Hello,

    je finis par croire que cette idée de cacher ou de présenter un noeud d'un Treeview ne soit pas possible;

    la propriété "Visible" des noeuds d'un Treeview doit concerner le fait que le noeud soit présenté dans le Treeview, que le noeud parent soit "expanded", ce qui explique que cette propriété soit en lecture seule

    Bref ceci ne sera donc possible qu'en supprimant le noeud concerné et en le recréant quand besoin est...

    Si vous avez d'autres idées, je suis preneur...

    Merci d'avance

  10. #10
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Je vais quand même continuer à fouiller dans mes tiroirs...

    Une chose est sure : j'ai fait çà une fois...

    Je ne sais pas combien de temps il me faudra (je devrai vraisemblablement mettre en esclave, 1 par 1, de vieux disques durs), mais il faut que celà revienne à la surface...


  11. #11
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    Citation Envoyé par jmfmarques
    je devrai vraisemblablement mettre en esclave, 1 par 1, de vieux disques durs, mais il faut que celà revienne à la surface...
    Tu pourrais en profiter pour sauvegarder tes données sur des supports plus "accessibles"
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  12. #12
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Ouais, sur !

    Mais il s'agissait d'applications que je n'avais pas développées pour moi et qui n'avaient d'utilité que pour un service très particulier...
    Je n'ai donc jamais jugé utile de les mettre sur un DAT (à l'époque, je n'avais pas de "CD RECORDER", denrée encore rare et chère)... Et de toutes façons, si je les avais mises sur un DAT, çà ne m'avancerait à rien car je me suis débarrassé du lecteur DAT il y a belle lurette....

    C'était une autre époque, vois-tu ?

  13. #13
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    J'oubliais de dire : les bandes des DAT n'aiment pas beaucoup le climat de l'Ogoue (Gabon)

  14. #14
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Après qques tests, il semble, en effet que la propriété visible d'un noeud indique seulement si celui-ci est "visible" ou fermé, et est en lecture seule
    Donc, à part reconstruire le treeview à la demande (ou détruire et recréer les noeuds, comme dit plus haut), je ne vois pas d'autre solution

  15. #15
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    Citation Envoyé par jmfmarques
    C'était une autre époque, vois-tu ?
    Mais je ne critique en rien, M'sieur, je dis juste que c'est l'occasion de la faire
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  16. #16
    Membre éclairé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2005
    Messages : 64
    Par défaut
    salut,
    j'ai chercher un peu partout mais j'ai pas trouvé une solution directe.
    je te propose ça :
    quand tu cache le neoud : tu peut saugarder le noued enquestion dans une collection avant de le supprimer

    quand tu le rend visible : tu l'ajoute à l'arborissance et tu le supprime de la collection

Discussions similaires

  1. Masquer et Afficher une colonne
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/09/2006, 10h38
  2. Réponses: 1
    Dernier message: 15/06/2006, 18h01
  3. [C#][VS2005]afficher le premier Noeud d'un TreeView
    Par tchup dans le forum Windows Forms
    Réponses: 1
    Dernier message: 30/05/2006, 12h01
  4. [vb 2005]Datagridview : comment afficher certaines colonnes
    Par estelledany dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/05/2006, 02h41
  5. [VB6] masquer la barre de titre d'une form
    Par tiboleo dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 09/12/2002, 17h54

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