TreeView : comment associer une image a un TreeNode

Signaler
Messages postés
40
Date d'inscription
samedi 28 janvier 2006
Statut
Membre
Dernière intervention
1 avril 2006
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
j'utilise une classe pour afficher un xml dans treeViewer je veut associer pour chaque type de noeud une image comment faire ça?
comment paramétrer le treeViewer?

7 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Salut,

Le contrôle s'appelle TreeView, pas TreeViewer.
Et pour l'image tout est expliqué là : TreeNode.ImageList

/*
coq
MVP Visual C#
*/
Messages postés
40
Date d'inscription
samedi 28 janvier 2006
Statut
Membre
Dernière intervention
1 avril 2006

j'ai regarder ce que tu ma donner mais j'ai rien saisi
moi mon problem est le suivant: j'utilise cette classe pour afficher un document xml dans le treeview

public
class TreeXML


{



private
static TreeNode DoElement(XmlNode xn)


{


TreeNode tn =
new TreeNode(xn.Name);



// créé l'objet TreeNode de base qui va recevoir les données XML



// il portera le nom de la balise XML



// il y a des attributs



if (xn.Attributes !=
null && xn.Attributes.Count > 0)


{



//TreeNode attr_node = tn.Nodes.Add(" cet élémént a les attributs ");



// on creer un sous arbre



// qui contiendra les attributs



foreach (XmlAttribute attr
in xn.Attributes)
// parcours des attributs



// attr_node.Nodes.Add(attr.Name + " = " + attr.Value);


tn.Nodes.Add(attr.Name + " = " + attr.Value);



// ajout des attributs,



// nom de l'attribut puis sa valeur


}



// le sous-element XML n'est pas une balise mais une valeur textuelle



if (xn.Value !=
null && xn.Value != "")


tn.Text = xn.Value;



else


{



// parcours des sous-elements XML



foreach (XmlNode subxn
in xn.ChildNodes)


tn.Nodes.Add(DoElement(subxn));



// on ajoute le sous-element ainsi que ses propres



// sous-element recursivement


}



return (tn);



// une fois la recursion terminée, on renvoie le TreeNode, qui contient ses sous TreeNode


}



public
static TreeNode GetTreeNodeFromXML(
string xml_file)


{


XmlDocument doc =
new XmlDocument();


doc.Load(xml_file);



// charge un fichier xml, cette fonction se charge toute seule de gerer le fichier



// pas besoin de Close ou autre


XmlNode root = doc.DocumentElement;



// root devient le premier element XML



// (il n'y en a jamais plus d'un en XML, il est toujours unique)



return (DoElement(root));



// appel a DoElement


}


}

mon problem commeent associer pour chaque type denoeud une image spécifique
j'ai vu imageList mais rien
help me please
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
tn.ImageIndex = indexImage;

où indexImage est l'index d'une image contenue dans l'instance de la classe ImageList que tu as affectée à la propriété ImageList de ton contrôle TreeView.

/*
coq
MVP Visual C#
*/
Messages postés
40
Date d'inscription
samedi 28 janvier 2006
Statut
Membre
Dernière intervention
1 avril 2006

je ne voit comment utiliser ce ImageIndex
moi j'ai fait ça

ImageList myImageList =
new ImageList();


myImageList.Images.Add(Image.FromFile("idea.gif"));


myImageList.Images.Add(Image.FromFile("red.gif"));


myImageList.Images.Add(Image.FromFile("cross.gif"));



this.treeView1.ImageList=myImageList;

comment faire ça le COQ?????
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
private static TreeNode DoElement(XmlNode xn)
{
TreeNode tn = new TreeNode(xn.Name);
...
tn.ImageIndex = 0; // pour affecter l'image correspondant à "idea.gif", etc etc
...
}



/*
coq
MVP Visual C#
*/
Messages postés
40
Date d'inscription
samedi 28 janvier 2006
Statut
Membre
Dernière intervention
1 avril 2006

hello;le COQ
j'ai essayer mais sa donne rien regarde ce quj'ai fait


ImageList myImageList =
new ImageList();


myImageList.Images.Add(Image.FromFile("idea.gif"));


myImageList.Images.Add(Image.FromFile("red.gif"));


myImageList.Images.Add(Image.FromFile("cross.gif"));



// Assign the ImageList to the TreeView.



this.treeView1.ImageIndex=myImageList;

l'erreur est la suivante:
le type ouespace de non est ntrouvable(une dérictive using ou référence est elle manquante)

comment régler se problem
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Il manque le type en question dans ta retranscription du message d'erreur.
Tu peux directement faire un c/c de l'entrée de la liste des tâches.
Pour résoudre ton problème il suffit que tu regardes quel type est désigné, que tu ouvres la doc et que tu regardes dans quel namespace il est.

/*
coq
MVP Visual C#
*/