Bonjour,

Je développe actuellement une application en C# sous Windows XP et dans laquelle figure une fenêtre de hiérarchie, avec un TreeView. Elle me permet de lister différents objets sur lesquels je travaille.

À chaque type d'objet, j'associe une icône en utilisant le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
hierarchyTreeView = new TreeView();
hierarchyIcons = new ImageList();
hierarchyIcons.Images.Add(Image.FromFile("icon1.gif"));
hierarchyIcons.Images.Add(Image.FromFile("icon2.gif"));
hierarchyIcons.Images.Add(Image.FromFile("icon3.gif"));
...
hierarchyTreeView.ImageList = hierarchyIcons;
hierarchyForm.Controls.Add(hierarchyTreeView);
Jusque là, tout va bien. Sauf que je souhaite que mon application utilise les styles visuels pour avoir des boutons un peu plus sympas que ceux par défaut. J'ajoute donc cette ligne-là :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Application.EnableVisualStyles();
Et là, gros souci : les nœuds de ma hiérarchie n'ont plus du tout d'icône !
J'ai testé ceci en ayant les styles visuels d'activés :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
e.Node.ImageUrl="Custom.jpg";
mais ça ne fonctionne pas mieux.

Pensant que ça pouvait venir de mon thème, j'ai aussi tenté de rétablir le thème de Windows par défaut mais rien à faire, les icônes du TreeView disparaissent à compter du moment où j'ai fait EnableVisualStyles. Ça ne vient donc pas du thème. Sachant que dans l'explorateur Windows, on retrouve bien des icônes en regard de chaque TreeNode, je me dis qu'il doit bien exister un façon de contourner ce problème.

Est-ce que vous sauriez du coup comment avoir les styles visuels d'actifs ET des icônes pour chaque noeud des TreeViews ?

Merci d'avance pour vos réponses.