TreeView et ImageList [Résolu]

Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 11 avril 2015 à 15:59 - Dernière réponse :
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 12 avril 2015 à 12:39
Bonjour le Forum,

Dans un formulaire, j'ai chargé une classe ImageList, avec 5 images:
1ère : Logo Excel
2ème : Logo Word
3ème : Image Forward (traitement sélectionné)
4ème : Image World
5ème : Image Billboard

Je créé dynamiquement le TreeView1, puis les nodes.

Sub InitializeTreeView()
Dim names As New List(Of String) From {"Création Plan de Production", _
"Création Consignes Client", _
"Création Consignes Client (Delta)", _
"Création Consignes SAVEMUTU"}
Treeview1.BeginUpdate()
Treeview1.Nodes.Add("Choix du traitement")
Treeview1.Location = New Point(15, 100)
Treeview1.Size = New Size(600, 1200)
Treeview1.BorderStyle = BorderStyle.None
Treeview1.BackColor = Color.NavajoWhite
Treeview1.Font = New Font("Arial", 12, FontStyle.Underline)
Treeview1.ImageList = ImageList1
Treeview1.ImageIndex = 4
Treeview1.SelectedImageIndex = 4

For Each item As String In names
Dim newnode As New TreeNode
newnode.Text = item
newnode.NodeFont = New Font("Arial", 12, FontStyle.Italic)
Treeview1.Nodes(0).ImageIndex = 3
Treeview1.Nodes(0).SelectedImageIndex = 3
Treeview1.Nodes(0).Nodes.Add(newnode)
Next
Treeview1.ExpandAll()
Me.Controls.Add(Treeview1)
Treeview1.EndUpdate()
End Sub

Private Sub InitializeNodePDP()
' Déclaration des variables
Dim arrLine As New List(Of String)
Dim parts() As String

' Creation d'un tableau contenant toutes les lignes du fichier config .ini
arrLine = System.IO.File.ReadAllLines(PathTeam & PathConfig & FileConfig, _
System.Text.Encoding.Default).ToList
' Parcours du tableau
For Each items As String In arrLine
Dim MyCustomer As String
' Split sur vbtab pour récupérer le nom du client et les colonnes du Plan de Production
parts = items.Split(New Char() {Convert.ToChar(Keys.Tab)}, StringSplitOptions.RemoveEmptyEntries)

If UBound(parts) = 1 Then
MyCustomer = Replace(parts(0), Chr(64), vbNullString)
Treeview1.Nodes(0).Nodes(0).ImageIndex = 4
Treeview1.Nodes(0).Nodes(0).SelectedImageIndex = 0
Treeview1.Nodes(0).Nodes(0).Nodes.Add(MyCustomer)
End If
Next
Treeview1.ExpandAll()
End Sub


Mon souci, ce sont les images, je souhaiterai que :
- que le TreeView (Choix du traitement) ait toujours la 4ème image (World);
- que les Nodes (Création ...) ait toujours la 5ème image (Billboard);
- que dans le node fils (Client 1, Client 2 ....) je permute au clic sur les images 3 (Forward) et 0 (Logo Excel).

Soit, par rapport à l'image :
World (Choix du traitement)
Billboard (Création Plan de Production)
Logo Excel (Client 1 non sélectionné)
Forward (Client 2 sélectionné)
Logo Excel (Client 3 non sélectionné)
Billboard (Création Consignes ...)
Billboard (Création Consignes ...)
Billboard (Création Consignes ...)

Je n'arrive pas à figer les images du "Choix du traitement" et des "Création ...".

Merci pour vos suggestions,
jean-marc
Afficher la suite 

Votre réponse

2 réponses

Messages postés
835
Date d'inscription
samedi 15 novembre 2008
Dernière intervention
14 janvier 2017
- 12 avril 2015 à 10:59
0
Merci
Bonjour

Il faut que tu définisses l'index de l'image sur le "node" que tu ajoutes et non pas sur le node parent.

Dim newnode As New TreeNode
newnode.Text = item
newnode.NodeFont = New Font("Arial", 12, FontStyle.Italic)
newnode.ImageIndex = 3
newnode.SelectedImageIndex = 3
Treeview1.Nodes(0).Nodes.Add(newnode)




Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 12 avril 2015 à 12:39
Bonjour Robert,

Effectivement, en suivant tes conseils avisés, j'obtiens le résultat souhaité.

Merci et bonne journée,
@+
jean-marc
Commenter la réponse de cs_Robert33

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.