J'utilise un treeview pour afficher une liste de personnes par catégories.
Voici un exemple d'arborescence :
-Professionnel
|--Nicolas
|--Stéphane
-Personnel
|--Nicolas
|--Nicolas
|--Nicolas
Il peut y avoir plusieurs catégories. Est-il possible de ne parcourir que
les catégories?
En fait, si j'ai bien compris chaque racine (catégorie) est un objet node
comme les autres donc il n'est pas possible de connaitre avant execution les
index des catégories qui vont être affichés du fait que cela dépends du
nombre de node qu'il y aura entre les catégories.
Quelqu'un connait-il un tutoriel avancé pour le treeview.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ng
Salut,
Essaye qqch chose comme ceci :
Dim i As Integer For i = 1 To TreeView1.Nodes.Count If TreeView1.Nodes(i).Parent Is Nothing Then Debug.Print "Root : " & i End If Next
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Nicolas a écrit :
Bonjour,
J'utilise un treeview pour afficher une liste de personnes par catégories. Voici un exemple d'arborescence : -Professionnel |--Nicolas |--Stéphane -Personnel |--Nicolas |--Nicolas |--Nicolas
Il peut y avoir plusieurs catégories. Est-il possible de ne parcourir que les catégories? En fait, si j'ai bien compris chaque racine (catégorie) est un objet node comme les autres donc il n'est pas possible de connaitre avant execution les index des catégories qui vont être affichés du fait que cela dépends du nombre de node qu'il y aura entre les catégories.
Quelqu'un connait-il un tutoriel avancé pour le treeview.
Merci d'avance pour votre aide.
Nicolas.
Salut,
Essaye qqch chose comme ceci :
Dim i As Integer
For i = 1 To TreeView1.Nodes.Count
If TreeView1.Nodes(i).Parent Is Nothing Then
Debug.Print "Root : " & i
End If
Next
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/
Nicolas <ncollet@free.fr> a écrit :
Bonjour,
J'utilise un treeview pour afficher une liste de personnes par
catégories. Voici un exemple d'arborescence :
-Professionnel
|--Nicolas
|--Stéphane
-Personnel
|--Nicolas
|--Nicolas
|--Nicolas
Il peut y avoir plusieurs catégories. Est-il possible de ne parcourir
que les catégories?
En fait, si j'ai bien compris chaque racine (catégorie) est un objet
node comme les autres donc il n'est pas possible de connaitre avant
execution les index des catégories qui vont être affichés du fait que
cela dépends du nombre de node qu'il y aura entre les catégories.
Quelqu'un connait-il un tutoriel avancé pour le treeview.
Dim i As Integer For i = 1 To TreeView1.Nodes.Count If TreeView1.Nodes(i).Parent Is Nothing Then Debug.Print "Root : " & i End If Next
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Nicolas a écrit :
Bonjour,
J'utilise un treeview pour afficher une liste de personnes par catégories. Voici un exemple d'arborescence : -Professionnel |--Nicolas |--Stéphane -Personnel |--Nicolas |--Nicolas |--Nicolas
Il peut y avoir plusieurs catégories. Est-il possible de ne parcourir que les catégories? En fait, si j'ai bien compris chaque racine (catégorie) est un objet node comme les autres donc il n'est pas possible de connaitre avant execution les index des catégories qui vont être affichés du fait que cela dépends du nombre de node qu'il y aura entre les catégories.
Quelqu'un connait-il un tutoriel avancé pour le treeview.
Merci d'avance pour votre aide.
Nicolas.
Zoury
Salut Nicolas! :O)
For i = 1 To TreeView1.Nodes.Count If TreeView1.Nodes(i).Parent Is Nothing Then
Il y a une méthode plus efficace.. Présentement, tu boucles sur tous les noeuds de l'arbre tandis qu'en utilisant la propriété Next tu pourrais boucler sur les noeuds Root seulement..
Ex (non testé) : '*** Dim nd As Node
If (TreeView1.Nodes.Count > 0) Then ' on va chercher le premier noeud root de l'arbre Set nd = TreeView1.Nodes(0).Root.FirstSibling Do until nd Is Nothing Debug.Print nd.Text Set nd = nd.Next ' on passe au suivant (même niveau) Loop End If '***
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/
Salut Nicolas! :O)
For i = 1 To TreeView1.Nodes.Count
If TreeView1.Nodes(i).Parent Is Nothing Then
Il y a une méthode plus efficace.. Présentement, tu boucles sur tous les
noeuds de l'arbre tandis qu'en utilisant la propriété Next tu pourrais
boucler sur les noeuds Root seulement..
Ex (non testé) :
'***
Dim nd As Node
If (TreeView1.Nodes.Count > 0) Then
' on va chercher le premier noeud root de l'arbre
Set nd = TreeView1.Nodes(0).Root.FirstSibling
Do until nd Is Nothing
Debug.Print nd.Text
Set nd = nd.Next ' on passe au suivant (même niveau)
Loop
End If
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
Le français se refait une beauté, parlons en :
http://www.orthographe-recommandee.info/
For i = 1 To TreeView1.Nodes.Count If TreeView1.Nodes(i).Parent Is Nothing Then
Il y a une méthode plus efficace.. Présentement, tu boucles sur tous les noeuds de l'arbre tandis qu'en utilisant la propriété Next tu pourrais boucler sur les noeuds Root seulement..
Ex (non testé) : '*** Dim nd As Node
If (TreeView1.Nodes.Count > 0) Then ' on va chercher le premier noeud root de l'arbre Set nd = TreeView1.Nodes(0).Root.FirstSibling Do until nd Is Nothing Debug.Print nd.Text Set nd = nd.Next ' on passe au suivant (même niveau) Loop End If '***
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/
Laurent Jordi \(www.ezlogic.mc\)
Salut,
Je suis tout a fait d'accord avec zoury, le parcours de toutes les nodes d'un treeview est très lent. Si l'abre est grand ça va super ramer... Il est donc necessaire d'utiliser les nextsibling...
@+
LJ
"Zoury" a écrit dans le message de news:
Salut Nicolas! :O)
> For i = 1 To TreeView1.Nodes.Count > If TreeView1.Nodes(i).Parent Is Nothing Then
Il y a une méthode plus efficace.. Présentement, tu boucles sur tous les noeuds de l'arbre tandis qu'en utilisant la propriété Next tu pourrais boucler sur les noeuds Root seulement..
Ex (non testé) : '*** Dim nd As Node
If (TreeView1.Nodes.Count > 0) Then ' on va chercher le premier noeud root de l'arbre Set nd = TreeView1.Nodes(0).Root.FirstSibling Do until nd Is Nothing Debug.Print nd.Text Set nd = nd.Next ' on passe au suivant (même niveau) Loop End If '***
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/
Salut,
Je suis tout a fait d'accord avec zoury, le parcours de toutes les nodes
d'un treeview est très lent. Si l'abre est grand ça va super ramer... Il est
donc necessaire d'utiliser les nextsibling...
@+
LJ
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de
news:e3dnR2HhEHA.2416@TK2MSFTNGP10.phx.gbl...
Salut Nicolas! :O)
> For i = 1 To TreeView1.Nodes.Count
> If TreeView1.Nodes(i).Parent Is Nothing Then
Il y a une méthode plus efficace.. Présentement, tu boucles sur tous les
noeuds de l'arbre tandis qu'en utilisant la propriété Next tu pourrais
boucler sur les noeuds Root seulement..
Ex (non testé) :
'***
Dim nd As Node
If (TreeView1.Nodes.Count > 0) Then
' on va chercher le premier noeud root de l'arbre
Set nd = TreeView1.Nodes(0).Root.FirstSibling
Do until nd Is Nothing
Debug.Print nd.Text
Set nd = nd.Next ' on passe au suivant (même niveau)
Loop
End If
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
Le français se refait une beauté, parlons en :
http://www.orthographe-recommandee.info/
Je suis tout a fait d'accord avec zoury, le parcours de toutes les nodes d'un treeview est très lent. Si l'abre est grand ça va super ramer... Il est donc necessaire d'utiliser les nextsibling...
@+
LJ
"Zoury" a écrit dans le message de news:
Salut Nicolas! :O)
> For i = 1 To TreeView1.Nodes.Count > If TreeView1.Nodes(i).Parent Is Nothing Then
Il y a une méthode plus efficace.. Présentement, tu boucles sur tous les noeuds de l'arbre tandis qu'en utilisant la propriété Next tu pourrais boucler sur les noeuds Root seulement..
Ex (non testé) : '*** Dim nd As Node
If (TreeView1.Nodes.Count > 0) Then ' on va chercher le premier noeud root de l'arbre Set nd = TreeView1.Nodes(0).Root.FirstSibling Do until nd Is Nothing Debug.Print nd.Text Set nd = nd.Next ' on passe au suivant (même niveau) Loop End If '***
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/
Nicolas
Bonjour,
Merci beaucoup pour se code, il fonctionne super bien, de plus c'est optimisé, les utilisateurs de mon logiciel apprécieront ;).
Cordialement. Nicolas COLLET.
"Zoury" a écrit dans le message de news:
Salut Nicolas! :O)
> For i = 1 To TreeView1.Nodes.Count > If TreeView1.Nodes(i).Parent Is Nothing Then
Il y a une méthode plus efficace.. Présentement, tu boucles sur tous les noeuds de l'arbre tandis qu'en utilisant la propriété Next tu pourrais boucler sur les noeuds Root seulement..
Ex (non testé) : '*** Dim nd As Node
If (TreeView1.Nodes.Count > 0) Then ' on va chercher le premier noeud root de l'arbre Set nd = TreeView1.Nodes(0).Root.FirstSibling Do until nd Is Nothing Debug.Print nd.Text Set nd = nd.Next ' on passe au suivant (même niveau) Loop End If '***
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/
Bonjour,
Merci beaucoup pour se code, il fonctionne super bien, de plus c'est
optimisé, les utilisateurs de mon logiciel apprécieront ;).
Cordialement.
Nicolas COLLET.
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de
news:e3dnR2HhEHA.2416@TK2MSFTNGP10.phx.gbl...
Salut Nicolas! :O)
> For i = 1 To TreeView1.Nodes.Count
> If TreeView1.Nodes(i).Parent Is Nothing Then
Il y a une méthode plus efficace.. Présentement, tu boucles sur tous les
noeuds de l'arbre tandis qu'en utilisant la propriété Next tu pourrais
boucler sur les noeuds Root seulement..
Ex (non testé) :
'***
Dim nd As Node
If (TreeView1.Nodes.Count > 0) Then
' on va chercher le premier noeud root de l'arbre
Set nd = TreeView1.Nodes(0).Root.FirstSibling
Do until nd Is Nothing
Debug.Print nd.Text
Set nd = nd.Next ' on passe au suivant (même niveau)
Loop
End If
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
Le français se refait une beauté, parlons en :
http://www.orthographe-recommandee.info/
Merci beaucoup pour se code, il fonctionne super bien, de plus c'est optimisé, les utilisateurs de mon logiciel apprécieront ;).
Cordialement. Nicolas COLLET.
"Zoury" a écrit dans le message de news:
Salut Nicolas! :O)
> For i = 1 To TreeView1.Nodes.Count > If TreeView1.Nodes(i).Parent Is Nothing Then
Il y a une méthode plus efficace.. Présentement, tu boucles sur tous les noeuds de l'arbre tandis qu'en utilisant la propriété Next tu pourrais boucler sur les noeuds Root seulement..
Ex (non testé) : '*** Dim nd As Node
If (TreeView1.Nodes.Count > 0) Then ' on va chercher le premier noeud root de l'arbre Set nd = TreeView1.Nodes(0).Root.FirstSibling Do until nd Is Nothing Debug.Print nd.Text Set nd = nd.Next ' on passe au suivant (même niveau) Loop End If '***
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/
ng
Ok au temps pr moi ! Mais je n'avais jamais eu a refléchir a ce problème n'utilisant généralement que très peu de nodes dans mes treeviews.
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Laurent Jordi (www.ezlogic.mc) <inf[o]@ezlogic.mc> a écrit :
Salut,
Je suis tout a fait d'accord avec zoury, le parcours de toutes les nodes d'un treeview est très lent. Si l'abre est grand ça va super ramer... Il est donc necessaire d'utiliser les nextsibling...
@+
LJ
"Zoury" a écrit dans le message de news:
Salut Nicolas! :O)
For i = 1 To TreeView1.Nodes.Count If TreeView1.Nodes(i).Parent Is Nothing Then
Il y a une méthode plus efficace.. Présentement, tu boucles sur tous les noeuds de l'arbre tandis qu'en utilisant la propriété Next tu pourrais boucler sur les noeuds Root seulement..
Ex (non testé) : '*** Dim nd As Node
If (TreeView1.Nodes.Count > 0) Then ' on va chercher le premier noeud root de l'arbre Set nd = TreeView1.Nodes(0).Root.FirstSibling Do until nd Is Nothing Debug.Print nd.Text Set nd = nd.Next ' on passe au suivant (même niveau) Loop End If '***
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/
Ok au temps pr moi ! Mais je n'avais jamais eu a refléchir a ce problème
n'utilisant généralement que très peu de nodes dans mes treeviews.
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/
Laurent Jordi (www.ezlogic.mc) <inf[o]@ezlogic.mc> a écrit :
Salut,
Je suis tout a fait d'accord avec zoury, le parcours de toutes les
nodes d'un treeview est très lent. Si l'abre est grand ça va super
ramer... Il est donc necessaire d'utiliser les nextsibling...
@+
LJ
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de
news:e3dnR2HhEHA.2416@TK2MSFTNGP10.phx.gbl...
Salut Nicolas! :O)
For i = 1 To TreeView1.Nodes.Count
If TreeView1.Nodes(i).Parent Is Nothing Then
Il y a une méthode plus efficace.. Présentement, tu boucles sur tous
les noeuds de l'arbre tandis qu'en utilisant la propriété Next tu
pourrais boucler sur les noeuds Root seulement..
Ex (non testé) :
'***
Dim nd As Node
If (TreeView1.Nodes.Count > 0) Then
' on va chercher le premier noeud root de l'arbre
Set nd = TreeView1.Nodes(0).Root.FirstSibling
Do until nd Is Nothing
Debug.Print nd.Text
Set nd = nd.Next ' on passe au suivant (même niveau)
Loop
End If
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
Le français se refait une beauté, parlons en :
http://www.orthographe-recommandee.info/
Ok au temps pr moi ! Mais je n'avais jamais eu a refléchir a ce problème n'utilisant généralement que très peu de nodes dans mes treeviews.
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Laurent Jordi (www.ezlogic.mc) <inf[o]@ezlogic.mc> a écrit :
Salut,
Je suis tout a fait d'accord avec zoury, le parcours de toutes les nodes d'un treeview est très lent. Si l'abre est grand ça va super ramer... Il est donc necessaire d'utiliser les nextsibling...
@+
LJ
"Zoury" a écrit dans le message de news:
Salut Nicolas! :O)
For i = 1 To TreeView1.Nodes.Count If TreeView1.Nodes(i).Parent Is Nothing Then
Il y a une méthode plus efficace.. Présentement, tu boucles sur tous les noeuds de l'arbre tandis qu'en utilisant la propriété Next tu pourrais boucler sur les noeuds Root seulement..
Ex (non testé) : '*** Dim nd As Node
If (TreeView1.Nodes.Count > 0) Then ' on va chercher le premier noeud root de l'arbre Set nd = TreeView1.Nodes(0).Root.FirstSibling Do until nd Is Nothing Debug.Print nd.Text Set nd = nd.Next ' on passe au suivant (même niveau) Loop End If '***
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/