Treeview access

Signaler
Messages postés
1
Date d'inscription
samedi 28 octobre 2006
Statut
Membre
Dernière intervention
3 août 2009
-
Messages postés
11
Date d'inscription
jeudi 23 juillet 2009
Statut
Membre
Dernière intervention
25 juillet 2009
-
bonjour,
J'ai une table avec les liens pere/fils et une autre avec des tous les noeuds existants dont certains possedent une caracteristique.Jaffiche ces table sous formec hierarchique dans un tree à partir d'une procédure récursive et je voudrais mettre a jour les caracteristique pour tous les noeuds de la meme branche(En auto car la table des noeuds contient 15000 lignes).
En général les familles ne dépassent pas une dizaine de noeuds.La caracteristique n'est pas forcement sur le premier noeud mais peut etre à n'importe quel niveau de l'arborescence
J'espere que j'ai été assez clair dans ma question!

Merci d'avance pour vos réponses

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
WoW, faut que je sorte le décrypteur, 30 sec ...

"noeuds dont certains possedent une caracteristique"
Ca veut dire quoi, programmatiqcalement parlant ?

"je voudrais mettre a jour les caracteristique"
C'est ça ta question ? parce que je n'en vois pas d'autre dans ton texte

"Mettre à jour"
Définition ? Mettre à jour les tables ou le TreeView ?

Bref, en supposant que tu connaisses le nom du noeud et que tu veuilles le retrouver/rechercher dans ton TreeView, il te suffit de faire une boucle de recherche du genre
For Each monNoeud As TreeNode In monTreeView.Nodes
   If monNoeud.Text = "le noeud que je cherche" Then
      ' Ici, ce que tu veux faire sur ce noeud
      ' puis tu peux sortir de la recherche :
      Exit For
   End If
Next

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
11
Date d'inscription
jeudi 23 juillet 2009
Statut
Membre
Dernière intervention
25 juillet 2009

Bonjour,

Pour modifier une branche, une procédure récursive ce genre doit faire l'affaire :

Private sub ModifyBranch(ByVal aRootNode As TreeNode, ByVal maPropriete As Color) As String
If Not aRootNode Is Nothing Then
' modifier la propriété ici (dans cet exemple, la couleur)
aRootNode.ForeColor = maPropriete

Dim aNode As TreeNode
For Each aNode In aRootNode.Nodes
ModifyBranch(aNode, maPropriete)
Next aNode
End If
End Sub