Treeview access

ragouni Messages postés 1 Date d'inscription samedi 28 octobre 2006 Statut Membre Dernière intervention 3 août 2009 - 25 juil. 2009 à 11:33
phila38 Messages postés 11 Date d'inscription jeudi 23 juillet 2009 Statut Membre Dernière intervention 25 juillet 2009 - 25 juil. 2009 à 14:05
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 juil. 2009 à 12:39
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)
0
phila38 Messages postés 11 Date d'inscription jeudi 23 juillet 2009 Statut Membre Dernière intervention 25 juillet 2009
25 juil. 2009 à 14:05
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
0
Rejoignez-nous