TreeView sous VB6

Vyper909
Messages postés
24
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
8 janvier 2007
- 27 mai 2004 à 17:06
Vyper909
Messages postés
24
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
8 janvier 2007
- 28 mai 2004 à 17:12
Bonjour,

Je "m'amuse" avec les TreeViews depuis 2 semaines et j'ai réussi à en changer la couleur de fond, etc. Mais j'aimerais savoir si on peut changer le texte d'UNE SEULE Node (exemple: en gras, italique, etc.) et non de tout le TreeView. Y'a un API ou un truc quelconque pour ca?

Merci!

17 réponses

Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
27 mai 2004 à 19:55
oui oui, on peut :
chaque node possèdes une propriété Bold, et une propriété Forecolor :

    TreeView1.Nodes.Add(Text:="Hello").Bold = True
    TreeView1.Nodes.Add(Text:="Hello").ForeColor = vbRed
    TreeView1.Nodes.Add(Text:="Hello").ForeColor = vbBlue
    TreeView1.Nodes.Add Text:="Hello"
0
Vyper909
Messages postés
24
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
8 janvier 2007

27 mai 2004 à 20:37
Je regrette, mais les propriétés commencent à "Child" (pas de "Bold") et je ne trouve pas "ForeColor" non plus. C'est bien sous VB6 et non VB.Net?

Voici un exemple de ligne de code:

TreeView1.Nodes.Add(RootName$, tvwChild, ItemName$, ItemLabel$, PicList%).Bold = True

...ca me donne une erreur, et ".Forecolor" également.

Merci d'avoir répondu si rapidement!
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
27 mai 2004 à 20:41
VB6..... mais ton Service Pack dois jouer..... j'ai le SP6...

met le a jour et tu verra .....
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
27 mai 2004 à 20:42
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vyper909
Messages postés
24
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
8 janvier 2007

27 mai 2004 à 21:07
J'ai le SP6 d'installé.

La seule chose que je vois, c'est que je CROIS avoir installé la version 5 de TreeView plutôt que la 6 pour pouvoir changer la couleur de fond (BackColor) avec des API puisqu'on ne pouvait pas le faire avec la version 6 du contrôle.

Si tu connais une façon de changer tout ca facilement, ce serait très apprécié et ca règlerait mes problèmes.

Un gros merci pour l'aide!
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
27 mai 2004 à 21:14
ok, tu utilises une version plus ancienne volontairement.....

ca compliques un peu la chose ;)

je sais pas trop comment y remédier.... dsl
0
Vyper909
Messages postés
24
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
8 janvier 2007

27 mai 2004 à 21:19
Non mais en fait, si tu sais comment change la couleur de fond dans la version 6 (la plus récente) du contrôle, je pourrais changer la version que j'utilise... c'est que je tiens à ne PAS avoir un fond blanc dans mon TreeView. Si tout ca se fait, je change sur-le-champ! hehe!
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
27 mai 2004 à 21:25
Il n'y a pas non plus de propriété BackColor, mais un appel API (comme celui que tu as du utiliser ?) fonctionnera sans doute aussi.....
0
Vyper909
Messages postés
24
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
8 janvier 2007

27 mai 2004 à 21:36
L'auteur du "truc" mentionnait que le code n'était pas compatible avec la version 6 de l'API. Il me faudra trouver une autre API pour la version 6 dans ce cas... sinon je suis foutu dans les deux cas. hehe!

Merci!
0
crenaud76
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
27 mai 2004 à 21:46
Alors la j'ai les boules !! Cela fait 1 mois que j'ai le SP6 et j'apprend seulement que le treeview permet enfin de changer l'apparence noeud par noeud !!! J'ia les méga boules !!
Hé !! Renfield, tu connaitrais pas les autres modif apporté par le SP6, car M$ n'est vraiment pas très bavard la dessus ?
Ou si tu as une URL sur le sujet ?

Christophe R.
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
27 mai 2004 à 22:23
pas de doc la dessus.....

je connais qqs differences... comme la possibilité de mettre des Checkboxes devant les Nodes, les différentes propriétés de style (Forecolor, Bold, Grayed...).

en fait, en interne il doi y avoir eu pas mal de changements, car j'ai eu des soucis d'incompatibilités avec certaines API qui passaient sous SP5.....
0
Vyper909
Messages postés
24
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
8 janvier 2007

27 mai 2004 à 23:03
J'ai fait un test et mis à jour mon contrôle. Tout fonctionne bien, je peux changer la couleur de fond du TreeView (version 6), mais les nodes demeurent blanches. Je dois changer leur couleur de fond une par une. Jusque là, c'est pas SI mal...

Le problème: je ne peux toujours pas utiliser l'attribut "Bold"!! Ca me donne un Type Mismatch sur "= True". Quand j'enlève "= True", j'ai un autre Type Mismatch sur ".Bold"... je n'y comprends plus rien. Je ne suis pas néophyte en VB, mais le Treeview, ca j'y connais rien et j'avoue qu'il est loin d'être convivial en fait de propriétés et trucs du genre...

J'avais trouvé un contrôle de tierce partie, mais je leur ai posé une question et je n'ai jamais eu de nouvelles. C'est pratique! hehe!
0
Vyper909
Messages postés
24
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
8 janvier 2007

28 mai 2004 à 04:32
Bon, finalement j'ai trouvé. Voici ce qui n'allait pas (et je crois que le fait d'avoir opté pour la version 6 a aidé):

Je tentais d'utiliser l'attribut .Bold lors de l'ajout de la node, qui faisait partie d'une affectation du type "Set nodx = TreeView1.Nodes.Add(machin).Bold", mais ce n'est PAS la bonne façon de procéder.

Il faut faire comme suit (au cas où quelqu'un d'autre se poserait la question):

Set nodx = TreeView1.Nodes.Add(machin)
TreeView1.Nodes(TreeView1.Nodes.Count).BackColor = [LaCouleur]
TreeView1.Nodes(TreeView1.Nodes.Count).Bold = True/False

Donc l'opération doit être faite PAR LA SUITE et non en même temps que le reste.

Merci à tous de votre aide, particulièrement à Renfield! :big)
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
28 mai 2004 à 09:16
Effectivement , si tu fais cela :
Set nodx TreeView1.Nodes.Add(machin).Bold True

ca ne fonctionne pas !
tu tentes d'affecter un Boolean (le résultat du test d'égalité) a nodx...

par contre, tu peux faire cela :

Set nodx = TreeView1.Nodes.Add(machin)
nodx.BackColor = [LaCouleur]
nodx.Bold = True/False

en effet, Set nodx te donne via nodx la main sur le noeud.... pas besoin donc de : TreeView1.Nodes(TreeView1.Nodes.Count)
0
Vyper909
Messages postés
24
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
8 janvier 2007

28 mai 2004 à 14:21
Super, ca va alléger mon code en plus. :big)

Et maintenant, une dernière question (c'est moins important que le texte lui-même):

Est-il possible de changer la couleur des lignes qui relient les noeuds aux parents ou à la racine? Car c'est un gris pâle et il n'est pas très visible à moins d'être sur un fond blanc ou très foncé. Toutes les teintes de couleurs assez pâles tendent à les faires disparaitre...

Merci encore!
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
28 mai 2004 à 17:02
je crois qu'elle sont de la même couleur que le 'ForeColor' du Treeview.....
0
Vyper909
Messages postés
24
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
8 janvier 2007

28 mai 2004 à 17:12
Non, j'ai mis la propriété Forecolor à "vbBlack" (noir, évidemment) depuis la toute première fois que j'ai touché au TreeView et ca n'a jamais été noir. J'ai essayé rouge, vert, et autres couleurs et ca ne change rien.
0