Icone devant un noeud de treeview?

Résolu
Merry29 Messages postés 78 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 23 février 2009 - 6 juil. 2005 à 17:12
Merry29 Messages postés 78 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 23 février 2009 - 11 juil. 2005 à 20:35
Bonjour/Bonsoir

J'ai un treeview et je cherche à mettre des icones devant les noeuds (genre petit cadenas ouvert/fermé) un peu comme dans l'explorateur de windows avec les répertoires, disque dur, etc... Si vous savez comment faire n'hésitez pas à m'expliquer ;o)

Merci

10 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 33
7 juil. 2005 à 11:20
1) faudrait savoir déjà en quoi tu développes ?



2) est ce que t'es obligée d'ajouter tes icones en Runtime ?

tu peux les ajouter avant, clique droit sur ImageList et propriétés et là

tu verras qu'il y a un index, une key et même un tag pour chaque image.


3) sinon faut mettre l'index et/ou clé au chargement

exemple en VB6:

ImageList1.ListImages.Add 1, "bug", LoadPicture("C:\\ICONES\bug16.ico")



4) pour faire référence a une icone, tu peux utiliser soit son index, soit son nom

un avantage pour le nom c'est qu'il est pas modifié si on ajoute, supprime des icones


Daniel
2
Merry29 Messages postés 78 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 23 février 2009 1
11 juil. 2005 à 14:08
Bon j'étais passé à autre chose en attendant mais j'ai trouvé! Effectivement tu avais raison!

J'ai mis mes icone dans un imagelist :
"
Me.TreeView1.ImageList =
Me.ImageList1

"

ensuite pour savoir l'image à placer devant le noeud faut mettre :
"
dim noeud as new treenode
noeud.ImageIndex
= "le numéro de l'image dans le imagelist"
"
que l'on ajoute ensuite au treeview

Pour finir :
L'image "1" sera celle activé lorsque l'on selectionne le noeud

Me.TreeViewGroupes.SelectedImageIndex = 1

Merci pour les infos! ct la bonne piste!
Par contre je ne sais pas comment faire si je change l'ordre des images dans mon imagelist...
1
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 33
6 juil. 2005 à 21:38
1 - mettre une ImageList



2 - mette des icones dedans



3- lier le Treeview à l'ImageList:

Treeview.ImageList = ImageList1


4 - les mettre devant les noeuds

Treeview1.Nodes.Add(, , "root", "Poste de travail", "computer")


Daniel
0
Merry29 Messages postés 78 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 23 février 2009 1
7 juil. 2005 à 10:01
Alors...

je fais ça :

Dim image
As Image


image.Save("../Image/SECUR02B.ICO")



Me.ImageList1.Images.Add(image)



Me.TreeView1.ImageList = ImageList1 'comment je fais pour retrouver la bonne icon s'il y en a plusieurs? je ne trouve pas de tag.... ("item" peut-être?)


noeud1 =
New TreeNode

Et là je coince...
Treeview1.Nodes.Add(, , "root", "Poste de travail", "computer") ' je ne vois pas comment tu ajoute tes images? car il ne veut que des treenode...
0

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

Posez votre question
Merry29 Messages postés 78 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 23 février 2009 1
7 juil. 2005 à 13:51
Dsl je code en vb.net...

bon en mettant :


Me.TreeView1.ImageList = ImageList1
et en ajoutant les icone avant de commencer j'ai des icones qui s'affiche devant tous mes ... mais c'est du n'importe quoi... je ne sais pas comment lui faire comprendre qu'il y a des règles a respécter pour mes icones...
0
Merry29 Messages postés 78 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 23 février 2009 1
7 juil. 2005 à 14:06
En fait si j'ai compris ce que ça fait... mais visiblement ça ne prend que les 2 premières icones... ça fait comme dans l'explorateur Windows : (si on ne regarde que les répertoire par exemple) lorsqu'on clic sur le répertoire il s'ouvre (image 2) sinon il est fermé (image 1)

Moi je voudrais trouver un moyen de décider de l'icone en fonction du noeud...
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 33
7 juil. 2005 à 14:13
je sais pas comment c'est en Net

mais en Vb6 il y a une commande pour indiquer l'icone qand c'est ouvert ou pas



Set nodx = Treeview1.Nodes.Add(str, tvwChild, nomf, nom, "folder")

nodx.ExpandedImage = "openfolder"


Daniel
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 33
11 juil. 2005 à 16:20
tu doit surement avoir une propriété Key,

comme en VB6 on peut accéder soit par l'index soit par sa clef,

Key c'est de l'alpha, et ça change pas avec l'ordre des images




Daniel
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 36
11 juil. 2005 à 16:45
Salut,



Pour informations,

Les key ne sont pas dans VB.NET, iles t possible de les gérer un peu en les émulant avec la propriété TAG.



Bien sur on perd la puissance des keys.

Acces direct ... perte de la propriétés TAG Si deja utilisés.





http://support.microsoft.com/default.aspx?scid=KB;EN-US;311318



Si tu veux vraiment la propriete.
0
Merry29 Messages postés 78 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 23 février 2009 1
11 juil. 2005 à 20:35
J'utilise les tags autre part (j'en ai pas vu dans un imageList...)
mais il est possible de mettre un objet dans les tag comme ça tu met
tout ce que tu veux ;o) il suffit de faire :

directcast(truc.tag, objet).lavariablequetuveux!! du coup tu peux utiliser ton tag pour plusieur trus!



Sinon c'est un peu crade mais avec la liste il suffit de ne faire que rajouter et laisser les images "abandonné" dedant...
0