> Tu m'as indiqué comment coché les noeuds sous-type si on
coche le type, à contrario comment décoché le type si on
décoche un seul sous-type.
***quand les noeuds sont cochés*** je veux remplir un listview
avec uniquement les dépenses correspondantes aux checkBox
cochées du treeView
cela marche à partir d'un cmdAffiche, je voudrais
supprimer ce bouton mais je ne vois pas où integrer le
Dans mon Listview je veux afficher les lignes types en
rouge, avec le code ci-dessus seule la la première colonne
s'affiche en rouge, je voudrais que ce soit en rouge et
gras
> Tu m'as indiqué comment coché les noeuds sous-type si on
coche le type, à contrario comment décoché le type si on
décoche un seul sous-type.
***quand les noeuds sont cochés*** je veux remplir un listview
avec uniquement les dépenses correspondantes aux checkBox
cochées du treeView
cela marche à partir d'un cmdAffiche, je voudrais
supprimer ce bouton mais je ne vois pas où integrer le
Dans mon Listview je veux afficher les lignes types en
rouge, avec le code ci-dessus seule la la première colonne
s'affiche en rouge, je voudrais que ce soit en rouge et
gras
> Tu m'as indiqué comment coché les noeuds sous-type si on
coche le type, à contrario comment décoché le type si on
décoche un seul sous-type.
***quand les noeuds sont cochés*** je veux remplir un listview
avec uniquement les dépenses correspondantes aux checkBox
cochées du treeView
cela marche à partir d'un cmdAffiche, je voudrais
supprimer ce bouton mais je ne vois pas où integrer le
Dans mon Listview je veux afficher les lignes types en
rouge, avec le code ci-dessus seule la la première colonne
s'affiche en rouge, je voudrais que ce soit en rouge et
gras
Tu veux dire que si on décoche le dernier sous-types
cochés, le type devrait aussi se décocher ?
-----Message d'origine-----
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -
http://www.mentalis.org/agnet/apiguide.shtml -
.
Tu veux dire que si on décoche le dernier sous-types
cochés, le type devrait aussi se décocher ?
-----Message d'origine-----
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -
http://www.mentalis.org/agnet/apiguide.shtml -
.
Tu veux dire que si on décoche le dernier sous-types
cochés, le type devrait aussi se décocher ?
-----Message d'origine-----
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -
http://www.mentalis.org/agnet/apiguide.shtml -
.
> je veux dire si on decoche un ou plusieurs sous-type le
type devrait se decocher
> je veux dire si on decoche un ou plusieurs sous-type le
type devrait se decocher
> je veux dire si on decoche un ou plusieurs sous-type le
type devrait se decocher
If (Node.Parent Is Node.Root) Then
' vérifie si on vient de décoché le sous-type
' ET si son Parent est coché
If (Not Node.Checked And Node.Parent.Checked) Then
Node.Parent.Checked = False
End If
End If
> je veux dire si on decoche un ou plusieurs sous-type le
> type devrait se decocher
tu peux ajouter ces lignes dans l'événement NodeCheck(), note que je n'ai
pas testé le code mais la logique y est.. :
'***
' s'assure que le noeud (dé)coché soit bien au 2ieme niveau
If (Node.Parent Is Node.Root) Then
' vérifie si on vient de décoché le sous-type
' ET si son Parent est coché
If (Not Node.Checked And Node.Parent.Checked) Then
Node.Parent.Checked = False
End If
End If
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
If (Node.Parent Is Node.Root) Then
' vérifie si on vient de décoché le sous-type
' ET si son Parent est coché
If (Not Node.Checked And Node.Parent.Checked) Then
Node.Parent.Checked = False
End If
End If
> je veux dire si on decoche un ou plusieurs sous-type le
> type devrait se decocher
tu peux ajouter ces lignes dans l'événement NodeCheck(), note que je n'ai
pas testé le code mais la logique y est.. :
'***
' s'assure que le noeud (dé)coché soit bien au 2ieme niveau
If (Node.Parent Is Node.Root) Then
' vérifie si on vient de décoché le sous-type
' ET si son Parent est coché
If (Not Node.Checked And Node.Parent.Checked) Then
Node.Parent.Checked = False
End If
End If
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
If (Node.Parent Is Node.Root) Then
' vérifie si on vient de décoché le sous-type
' ET si son Parent est coché
If (Not Node.Checked And Node.Parent.Checked) Then
Node.Parent.Checked = False
End If
End If
> je veux dire si on decoche un ou plusieurs sous-type le
> type devrait se decocher
tu peux ajouter ces lignes dans l'événement NodeCheck(), note que je n'ai
pas testé le code mais la logique y est.. :
'***
' s'assure que le noeud (dé)coché soit bien au 2ieme niveau
If (Node.Parent Is Node.Root) Then
' vérifie si on vient de décoché le sous-type
' ET si son Parent est coché
If (Not Node.Checked And Node.Parent.Checked) Then
Node.Parent.Checked = False
End If
End If
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Salut Zoury
je ne vois pas ou placer ces codes :
pour le transfert des données dans le listview
Call TransfertLV(Node.Tag)
et pour décocher les sous-types
' s'assure que le noeud (dé)coché soit bien au 2ieme niveau (sous-type)
> If (Node.Parent Is Node.Root) Then
> ' vérifie si on vient de décoché le sous-type
> ' ET si son Parent est coché
> If (Not Node.Checked And Node.Parent.Checked) Then
> Node.Parent.Checked = False
> End If
> End If
dans
Private Sub CheckNode(ByRef Node As MSComctlLib.Node, ByRef bChecked As
Boolean, Optional ByRef bRecursive As Boolean)
Dim nd As MSComctlLib.Node
' on coche le noeud courant
Node.Checked = bChecked
' on vérifie s'il a des p'tits et si on doit s'en préoccuper
If (bRecursive And Node.Children > 0) Then
' il a des p'tits, on rappelle la fonction sur chacun d'eux
Set nd = Node.Child ' renvoit le premier noeud du sous-niveau
Do Until nd Is Nothing
Call CheckNode(nd, bChecked, bRecursive)
Set nd = nd.Next ' renvoit le prochain noeud du meme niveau
Loop
End If
End Sub
J'ai essayé plusieurs solutions et rien ne se passe
Cordialement
Jean Claude
"Zoury" a écrit dans le message de
news:
> > je veux dire si on decoche un ou plusieurs sous-type le
> > type devrait se decocher
>
> tu peux ajouter ces lignes dans l'événement NodeCheck(), note que je
> pas testé le code mais la logique y est.. :
> '***
> ' s'assure que le noeud (dé)coché soit bien au 2ieme niveau
(sous-type)
> If (Node.Parent Is Node.Root) Then
> ' vérifie si on vient de décoché le sous-type
> ' ET si son Parent est coché
> If (Not Node.Checked And Node.Parent.Checked) Then
> Node.Parent.Checked = False
> End If
> End If
> '***
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
>
>
Salut Zoury
je ne vois pas ou placer ces codes :
pour le transfert des données dans le listview
Call TransfertLV(Node.Tag)
et pour décocher les sous-types
' s'assure que le noeud (dé)coché soit bien au 2ieme niveau (sous-type)
> If (Node.Parent Is Node.Root) Then
> ' vérifie si on vient de décoché le sous-type
> ' ET si son Parent est coché
> If (Not Node.Checked And Node.Parent.Checked) Then
> Node.Parent.Checked = False
> End If
> End If
dans
Private Sub CheckNode(ByRef Node As MSComctlLib.Node, ByRef bChecked As
Boolean, Optional ByRef bRecursive As Boolean)
Dim nd As MSComctlLib.Node
' on coche le noeud courant
Node.Checked = bChecked
' on vérifie s'il a des p'tits et si on doit s'en préoccuper
If (bRecursive And Node.Children > 0) Then
' il a des p'tits, on rappelle la fonction sur chacun d'eux
Set nd = Node.Child ' renvoit le premier noeud du sous-niveau
Do Until nd Is Nothing
Call CheckNode(nd, bChecked, bRecursive)
Set nd = nd.Next ' renvoit le prochain noeud du meme niveau
Loop
End If
End Sub
J'ai essayé plusieurs solutions et rien ne se passe
Cordialement
Jean Claude
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de
news:etmz0eMdEHA.3864@TK2MSFTNGP10.phx.gbl...
> > je veux dire si on decoche un ou plusieurs sous-type le
> > type devrait se decocher
>
> tu peux ajouter ces lignes dans l'événement NodeCheck(), note que je
> pas testé le code mais la logique y est.. :
> '***
> ' s'assure que le noeud (dé)coché soit bien au 2ieme niveau
(sous-type)
> If (Node.Parent Is Node.Root) Then
> ' vérifie si on vient de décoché le sous-type
> ' ET si son Parent est coché
> If (Not Node.Checked And Node.Parent.Checked) Then
> Node.Parent.Checked = False
> End If
> End If
> '***
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
>
>
Salut Zoury
je ne vois pas ou placer ces codes :
pour le transfert des données dans le listview
Call TransfertLV(Node.Tag)
et pour décocher les sous-types
' s'assure que le noeud (dé)coché soit bien au 2ieme niveau (sous-type)
> If (Node.Parent Is Node.Root) Then
> ' vérifie si on vient de décoché le sous-type
> ' ET si son Parent est coché
> If (Not Node.Checked And Node.Parent.Checked) Then
> Node.Parent.Checked = False
> End If
> End If
dans
Private Sub CheckNode(ByRef Node As MSComctlLib.Node, ByRef bChecked As
Boolean, Optional ByRef bRecursive As Boolean)
Dim nd As MSComctlLib.Node
' on coche le noeud courant
Node.Checked = bChecked
' on vérifie s'il a des p'tits et si on doit s'en préoccuper
If (bRecursive And Node.Children > 0) Then
' il a des p'tits, on rappelle la fonction sur chacun d'eux
Set nd = Node.Child ' renvoit le premier noeud du sous-niveau
Do Until nd Is Nothing
Call CheckNode(nd, bChecked, bRecursive)
Set nd = nd.Next ' renvoit le prochain noeud du meme niveau
Loop
End If
End Sub
J'ai essayé plusieurs solutions et rien ne se passe
Cordialement
Jean Claude
"Zoury" a écrit dans le message de
news:
> > je veux dire si on decoche un ou plusieurs sous-type le
> > type devrait se decocher
>
> tu peux ajouter ces lignes dans l'événement NodeCheck(), note que je
> pas testé le code mais la logique y est.. :
> '***
> ' s'assure que le noeud (dé)coché soit bien au 2ieme niveau
(sous-type)
> If (Node.Parent Is Node.Root) Then
> ' vérifie si on vient de décoché le sous-type
> ' ET si son Parent est coché
> If (Not Node.Checked And Node.Parent.Checked) Then
> Node.Parent.Checked = False
> End If
> End If
> '***
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
>
>
Dans ton code tu as la méthode CheckNode() que tu as codé et il y a
l'événement CheckNode() que le TreeView déclenche lorsque l'utilisateur
coche ou décoche un noeud. Ce sont 2 méthodes très différentes.
Nous allons maitenant essayer de bien implémenter ta fonction.
Voici une liste des tâches à effectuer lorsque l'utilisateur coche un
(corrige au besoin, je fais ça de mémoire selon tes derniers posts ;O) ) :
- Coché les sous-noeuds du noeud coché
- Mettre à jour le ListView
Voici maitenant les tâches à effectuer lorsque l'utilisateur décoche un
noeud :
- Décoché le parent si le noeud décoché est un sous-type (niveau 2 dans
l'arbre)
Maitenant toutes ces actions se passe lorsque l'utilisateur coche et
des noeuds, nous devons donc implémenter l'événement NodeCheck() du
pour accomplir ces tâches en temps opportuns.
'***
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
' on vérifie si le noeud vient d'être coché
If (Node.Checked) Then
' on coche les sous-noeuds résursivement
Call CheckNode(Node, True, True)
' on met à jour le ListView
Call TransfertLV(Node.Tag)
Else
' on vérifie si le noeud est un sous-type
If (Node.Parent Is Node.Root) Then
' vérifie si son Parent est coché
If (Node.Parent.Checked) Then
Node.Parent.Checked = False
End If
End If
End If
End Sub
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"JCM" a écrit dans le message de
news:%
> Salut Zoury
>
> je ne vois pas ou placer ces codes :
> pour le transfert des données dans le listview
> Call TransfertLV(Node.Tag)
>
> et pour décocher les sous-types
>
> ' s'assure que le noeud (dé)coché soit bien au 2ieme niveau (sous-type)
> > If (Node.Parent Is Node.Root) Then
> > ' vérifie si on vient de décoché le sous-type
> > ' ET si son Parent est coché
> > If (Not Node.Checked And Node.Parent.Checked) Then
> > Node.Parent.Checked = False
> > End If
> > End If
>
> dans
>
> Private Sub CheckNode(ByRef Node As MSComctlLib.Node, ByRef bChecked As
> Boolean, Optional ByRef bRecursive As Boolean)
> Dim nd As MSComctlLib.Node
> ' on coche le noeud courant
> Node.Checked = bChecked
> ' on vérifie s'il a des p'tits et si on doit s'en préoccuper
> If (bRecursive And Node.Children > 0) Then
> ' il a des p'tits, on rappelle la fonction sur chacun d'eux
> Set nd = Node.Child ' renvoit le premier noeud du sous-niveau
> Do Until nd Is Nothing
> Call CheckNode(nd, bChecked, bRecursive)
> Set nd = nd.Next ' renvoit le prochain noeud du meme niveau
> Loop
> End If
> End Sub
>
> J'ai essayé plusieurs solutions et rien ne se passe
>
> Cordialement
> Jean Claude
>
>
>
>
> "Zoury" a écrit dans le message de
> news:
> > > je veux dire si on decoche un ou plusieurs sous-type le
> > > type devrait se decocher
> >
> > tu peux ajouter ces lignes dans l'événement NodeCheck(), note que je
n'ai
> > pas testé le code mais la logique y est.. :
> > '***
> > ' s'assure que le noeud (dé)coché soit bien au 2ieme niveau
> (sous-type)
> > If (Node.Parent Is Node.Root) Then
> > ' vérifie si on vient de décoché le sous-type
> > ' ET si son Parent est coché
> > If (Not Node.Checked And Node.Parent.Checked) Then
> > Node.Parent.Checked = False
> > End If
> > End If
> > '***
> >
> > --
> > Cordialement
> > Yanick Lefebvre - MVP pour Visual Basic
> > http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> > http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> >
> >
>
>
Dans ton code tu as la méthode CheckNode() que tu as codé et il y a
l'événement CheckNode() que le TreeView déclenche lorsque l'utilisateur
coche ou décoche un noeud. Ce sont 2 méthodes très différentes.
Nous allons maitenant essayer de bien implémenter ta fonction.
Voici une liste des tâches à effectuer lorsque l'utilisateur coche un
(corrige au besoin, je fais ça de mémoire selon tes derniers posts ;O) ) :
- Coché les sous-noeuds du noeud coché
- Mettre à jour le ListView
Voici maitenant les tâches à effectuer lorsque l'utilisateur décoche un
noeud :
- Décoché le parent si le noeud décoché est un sous-type (niveau 2 dans
l'arbre)
Maitenant toutes ces actions se passe lorsque l'utilisateur coche et
des noeuds, nous devons donc implémenter l'événement NodeCheck() du
pour accomplir ces tâches en temps opportuns.
'***
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
' on vérifie si le noeud vient d'être coché
If (Node.Checked) Then
' on coche les sous-noeuds résursivement
Call CheckNode(Node, True, True)
' on met à jour le ListView
Call TransfertLV(Node.Tag)
Else
' on vérifie si le noeud est un sous-type
If (Node.Parent Is Node.Root) Then
' vérifie si son Parent est coché
If (Node.Parent.Checked) Then
Node.Parent.Checked = False
End If
End If
End If
End Sub
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news:%23HUiKUUdEHA.3944@tk2msftngp13.phx.gbl...
> Salut Zoury
>
> je ne vois pas ou placer ces codes :
> pour le transfert des données dans le listview
> Call TransfertLV(Node.Tag)
>
> et pour décocher les sous-types
>
> ' s'assure que le noeud (dé)coché soit bien au 2ieme niveau (sous-type)
> > If (Node.Parent Is Node.Root) Then
> > ' vérifie si on vient de décoché le sous-type
> > ' ET si son Parent est coché
> > If (Not Node.Checked And Node.Parent.Checked) Then
> > Node.Parent.Checked = False
> > End If
> > End If
>
> dans
>
> Private Sub CheckNode(ByRef Node As MSComctlLib.Node, ByRef bChecked As
> Boolean, Optional ByRef bRecursive As Boolean)
> Dim nd As MSComctlLib.Node
> ' on coche le noeud courant
> Node.Checked = bChecked
> ' on vérifie s'il a des p'tits et si on doit s'en préoccuper
> If (bRecursive And Node.Children > 0) Then
> ' il a des p'tits, on rappelle la fonction sur chacun d'eux
> Set nd = Node.Child ' renvoit le premier noeud du sous-niveau
> Do Until nd Is Nothing
> Call CheckNode(nd, bChecked, bRecursive)
> Set nd = nd.Next ' renvoit le prochain noeud du meme niveau
> Loop
> End If
> End Sub
>
> J'ai essayé plusieurs solutions et rien ne se passe
>
> Cordialement
> Jean Claude
>
>
>
>
> "Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de
> news:etmz0eMdEHA.3864@TK2MSFTNGP10.phx.gbl...
> > > je veux dire si on decoche un ou plusieurs sous-type le
> > > type devrait se decocher
> >
> > tu peux ajouter ces lignes dans l'événement NodeCheck(), note que je
n'ai
> > pas testé le code mais la logique y est.. :
> > '***
> > ' s'assure que le noeud (dé)coché soit bien au 2ieme niveau
> (sous-type)
> > If (Node.Parent Is Node.Root) Then
> > ' vérifie si on vient de décoché le sous-type
> > ' ET si son Parent est coché
> > If (Not Node.Checked And Node.Parent.Checked) Then
> > Node.Parent.Checked = False
> > End If
> > End If
> > '***
> >
> > --
> > Cordialement
> > Yanick Lefebvre - MVP pour Visual Basic
> > http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> > http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> >
> >
>
>
Dans ton code tu as la méthode CheckNode() que tu as codé et il y a
l'événement CheckNode() que le TreeView déclenche lorsque l'utilisateur
coche ou décoche un noeud. Ce sont 2 méthodes très différentes.
Nous allons maitenant essayer de bien implémenter ta fonction.
Voici une liste des tâches à effectuer lorsque l'utilisateur coche un
(corrige au besoin, je fais ça de mémoire selon tes derniers posts ;O) ) :
- Coché les sous-noeuds du noeud coché
- Mettre à jour le ListView
Voici maitenant les tâches à effectuer lorsque l'utilisateur décoche un
noeud :
- Décoché le parent si le noeud décoché est un sous-type (niveau 2 dans
l'arbre)
Maitenant toutes ces actions se passe lorsque l'utilisateur coche et
des noeuds, nous devons donc implémenter l'événement NodeCheck() du
pour accomplir ces tâches en temps opportuns.
'***
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
' on vérifie si le noeud vient d'être coché
If (Node.Checked) Then
' on coche les sous-noeuds résursivement
Call CheckNode(Node, True, True)
' on met à jour le ListView
Call TransfertLV(Node.Tag)
Else
' on vérifie si le noeud est un sous-type
If (Node.Parent Is Node.Root) Then
' vérifie si son Parent est coché
If (Node.Parent.Checked) Then
Node.Parent.Checked = False
End If
End If
End If
End Sub
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"JCM" a écrit dans le message de
news:%
> Salut Zoury
>
> je ne vois pas ou placer ces codes :
> pour le transfert des données dans le listview
> Call TransfertLV(Node.Tag)
>
> et pour décocher les sous-types
>
> ' s'assure que le noeud (dé)coché soit bien au 2ieme niveau (sous-type)
> > If (Node.Parent Is Node.Root) Then
> > ' vérifie si on vient de décoché le sous-type
> > ' ET si son Parent est coché
> > If (Not Node.Checked And Node.Parent.Checked) Then
> > Node.Parent.Checked = False
> > End If
> > End If
>
> dans
>
> Private Sub CheckNode(ByRef Node As MSComctlLib.Node, ByRef bChecked As
> Boolean, Optional ByRef bRecursive As Boolean)
> Dim nd As MSComctlLib.Node
> ' on coche le noeud courant
> Node.Checked = bChecked
> ' on vérifie s'il a des p'tits et si on doit s'en préoccuper
> If (bRecursive And Node.Children > 0) Then
> ' il a des p'tits, on rappelle la fonction sur chacun d'eux
> Set nd = Node.Child ' renvoit le premier noeud du sous-niveau
> Do Until nd Is Nothing
> Call CheckNode(nd, bChecked, bRecursive)
> Set nd = nd.Next ' renvoit le prochain noeud du meme niveau
> Loop
> End If
> End Sub
>
> J'ai essayé plusieurs solutions et rien ne se passe
>
> Cordialement
> Jean Claude
>
>
>
>
> "Zoury" a écrit dans le message de
> news:
> > > je veux dire si on decoche un ou plusieurs sous-type le
> > > type devrait se decocher
> >
> > tu peux ajouter ces lignes dans l'événement NodeCheck(), note que je
n'ai
> > pas testé le code mais la logique y est.. :
> > '***
> > ' s'assure que le noeud (dé)coché soit bien au 2ieme niveau
> (sous-type)
> > If (Node.Parent Is Node.Root) Then
> > ' vérifie si on vient de décoché le sous-type
> > ' ET si son Parent est coché
> > If (Not Node.Checked And Node.Parent.Checked) Then
> > Node.Parent.Checked = False
> > End If
> > End If
> > '***
> >
> > --
> > Cordialement
> > Yanick Lefebvre - MVP pour Visual Basic
> > http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> > http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> >
> >
>
>
-----Message d'origine-----
Dans ton code tu as la méthode CheckNode() que tu as codé
l'événement CheckNode() que le TreeView déclenche lorsque
coche ou décoche un noeud. Ce sont 2 méthodes très
Nous allons maitenant essayer de bien implémenter ta
Voici une liste des tâches à effectuer lorsque
(corrige au besoin, je fais ça de mémoire selon tes
- Coché les sous-noeuds du noeud coché
- Mettre à jour le ListView
Voici maitenant les tâches à effectuer lorsque
noeud :
- Décoché le parent si le noeud décoché est un sous-type
l'arbre)
Maitenant toutes ces actions se passe lorsque
des noeuds, nous devons donc implémenter l'événement
pour accomplir ces tâches en temps opportuns.
'***
Private Sub TreeView1_NodeCheck(ByVal Node As
' on vérifie si le noeud vient d'être coché
If (Node.Checked) Then
' on coche les sous-noeuds résursivement
Call CheckNode(Node, True, True)
' on met à jour le ListView
Call TransfertLV(Node.Tag)
Else
' on vérifie si le noeud est un sous-type
If (Node.Parent Is Node.Root) Then
' vérifie si son Parent est coché
If (Node.Parent.Checked) Then
Node.Parent.Checked = False
End If
End If
End If
End Sub
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -
http://www.mentalis.org/agnet/apiguide.shtml -
"JCM" a écrit dans le
news:%Salut Zoury
je ne vois pas ou placer ces codes :
pour le transfert des données dans le listview
Call TransfertLV(Node.Tag)
et pour décocher les sous-types
' s'assure que le noeud (dé)coché soit bien au 2ieme
> If (Node.Parent Is Node.Root) Then
> ' vérifie si on vient de décoché le sous-type
> ' ET si son Parent est coché
> If (Not Node.Checked And Node.Parent.Checked)
> Node.Parent.Checked = False
> End If
> End If
dans
Private Sub CheckNode(ByRef Node As MSComctlLib.Node,
Boolean, Optional ByRef bRecursive As Boolean)
Dim nd As MSComctlLib.Node
' on coche le noeud courant
Node.Checked = bChecked
' on vérifie s'il a des p'tits et si on doit s'en
If (bRecursive And Node.Children > 0) Then
' il a des p'tits, on rappelle la fonction sur
Set nd = Node.Child ' renvoit le premier noeud
Do Until nd Is Nothing
Call CheckNode(nd, bChecked, bRecursive)
Set nd = nd.Next ' renvoit le prochain
Loop
End If
End Sub
J'ai essayé plusieurs solutions et rien ne se passe
Cordialement
Jean Claude
"Zoury" a écrit dans le
news:
> > je veux dire si on decoche un ou plusieurs sous-
> > type devrait se decocher
>
> tu peux ajouter ces lignes dans l'événement NodeCheck
n'ai> pas testé le code mais la logique y est.. :
> '***
> ' s'assure que le noeud (dé)coché soit bien au
(sous-type)
> If (Node.Parent Is Node.Root) Then
> ' vérifie si on vient de décoché le sous-type
> ' ET si son Parent est coché
> If (Not Node.Checked And Node.Parent.Checked)
> Node.Parent.Checked = False
> End If
> End If
> '***
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 -
> http://www.mentalis.org/agnet/apiguide.shtml -
>
>
.
-----Message d'origine-----
Dans ton code tu as la méthode CheckNode() que tu as codé
l'événement CheckNode() que le TreeView déclenche lorsque
coche ou décoche un noeud. Ce sont 2 méthodes très
Nous allons maitenant essayer de bien implémenter ta
Voici une liste des tâches à effectuer lorsque
(corrige au besoin, je fais ça de mémoire selon tes
- Coché les sous-noeuds du noeud coché
- Mettre à jour le ListView
Voici maitenant les tâches à effectuer lorsque
noeud :
- Décoché le parent si le noeud décoché est un sous-type
l'arbre)
Maitenant toutes ces actions se passe lorsque
des noeuds, nous devons donc implémenter l'événement
pour accomplir ces tâches en temps opportuns.
'***
Private Sub TreeView1_NodeCheck(ByVal Node As
' on vérifie si le noeud vient d'être coché
If (Node.Checked) Then
' on coche les sous-noeuds résursivement
Call CheckNode(Node, True, True)
' on met à jour le ListView
Call TransfertLV(Node.Tag)
Else
' on vérifie si le noeud est un sous-type
If (Node.Parent Is Node.Root) Then
' vérifie si son Parent est coché
If (Node.Parent.Checked) Then
Node.Parent.Checked = False
End If
End If
End If
End Sub
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -
http://www.mentalis.org/agnet/apiguide.shtml -
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le
news:%23HUiKUUdEHA.3944@tk2msftngp13.phx.gbl...
Salut Zoury
je ne vois pas ou placer ces codes :
pour le transfert des données dans le listview
Call TransfertLV(Node.Tag)
et pour décocher les sous-types
' s'assure que le noeud (dé)coché soit bien au 2ieme
> If (Node.Parent Is Node.Root) Then
> ' vérifie si on vient de décoché le sous-type
> ' ET si son Parent est coché
> If (Not Node.Checked And Node.Parent.Checked)
> Node.Parent.Checked = False
> End If
> End If
dans
Private Sub CheckNode(ByRef Node As MSComctlLib.Node,
Boolean, Optional ByRef bRecursive As Boolean)
Dim nd As MSComctlLib.Node
' on coche le noeud courant
Node.Checked = bChecked
' on vérifie s'il a des p'tits et si on doit s'en
If (bRecursive And Node.Children > 0) Then
' il a des p'tits, on rappelle la fonction sur
Set nd = Node.Child ' renvoit le premier noeud
Do Until nd Is Nothing
Call CheckNode(nd, bChecked, bRecursive)
Set nd = nd.Next ' renvoit le prochain
Loop
End If
End Sub
J'ai essayé plusieurs solutions et rien ne se passe
Cordialement
Jean Claude
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le
news:etmz0eMdEHA.3864@TK2MSFTNGP10.phx.gbl...
> > je veux dire si on decoche un ou plusieurs sous-
> > type devrait se decocher
>
> tu peux ajouter ces lignes dans l'événement NodeCheck
n'ai
> pas testé le code mais la logique y est.. :
> '***
> ' s'assure que le noeud (dé)coché soit bien au
(sous-type)
> If (Node.Parent Is Node.Root) Then
> ' vérifie si on vient de décoché le sous-type
> ' ET si son Parent est coché
> If (Not Node.Checked And Node.Parent.Checked)
> Node.Parent.Checked = False
> End If
> End If
> '***
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 -
> http://www.mentalis.org/agnet/apiguide.shtml -
>
>
.
-----Message d'origine-----
Dans ton code tu as la méthode CheckNode() que tu as codé
l'événement CheckNode() que le TreeView déclenche lorsque
coche ou décoche un noeud. Ce sont 2 méthodes très
Nous allons maitenant essayer de bien implémenter ta
Voici une liste des tâches à effectuer lorsque
(corrige au besoin, je fais ça de mémoire selon tes
- Coché les sous-noeuds du noeud coché
- Mettre à jour le ListView
Voici maitenant les tâches à effectuer lorsque
noeud :
- Décoché le parent si le noeud décoché est un sous-type
l'arbre)
Maitenant toutes ces actions se passe lorsque
des noeuds, nous devons donc implémenter l'événement
pour accomplir ces tâches en temps opportuns.
'***
Private Sub TreeView1_NodeCheck(ByVal Node As
' on vérifie si le noeud vient d'être coché
If (Node.Checked) Then
' on coche les sous-noeuds résursivement
Call CheckNode(Node, True, True)
' on met à jour le ListView
Call TransfertLV(Node.Tag)
Else
' on vérifie si le noeud est un sous-type
If (Node.Parent Is Node.Root) Then
' vérifie si son Parent est coché
If (Node.Parent.Checked) Then
Node.Parent.Checked = False
End If
End If
End If
End Sub
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -
http://www.mentalis.org/agnet/apiguide.shtml -
"JCM" a écrit dans le
news:%Salut Zoury
je ne vois pas ou placer ces codes :
pour le transfert des données dans le listview
Call TransfertLV(Node.Tag)
et pour décocher les sous-types
' s'assure que le noeud (dé)coché soit bien au 2ieme
> If (Node.Parent Is Node.Root) Then
> ' vérifie si on vient de décoché le sous-type
> ' ET si son Parent est coché
> If (Not Node.Checked And Node.Parent.Checked)
> Node.Parent.Checked = False
> End If
> End If
dans
Private Sub CheckNode(ByRef Node As MSComctlLib.Node,
Boolean, Optional ByRef bRecursive As Boolean)
Dim nd As MSComctlLib.Node
' on coche le noeud courant
Node.Checked = bChecked
' on vérifie s'il a des p'tits et si on doit s'en
If (bRecursive And Node.Children > 0) Then
' il a des p'tits, on rappelle la fonction sur
Set nd = Node.Child ' renvoit le premier noeud
Do Until nd Is Nothing
Call CheckNode(nd, bChecked, bRecursive)
Set nd = nd.Next ' renvoit le prochain
Loop
End If
End Sub
J'ai essayé plusieurs solutions et rien ne se passe
Cordialement
Jean Claude
"Zoury" a écrit dans le
news:
> > je veux dire si on decoche un ou plusieurs sous-
> > type devrait se decocher
>
> tu peux ajouter ces lignes dans l'événement NodeCheck
n'ai> pas testé le code mais la logique y est.. :
> '***
> ' s'assure que le noeud (dé)coché soit bien au
(sous-type)
> If (Node.Parent Is Node.Root) Then
> ' vérifie si on vient de décoché le sous-type
> ' ET si son Parent est coché
> If (Not Node.Checked And Node.Parent.Checked)
> Node.Parent.Checked = False
> End If
> End If
> '***
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 -
> http://www.mentalis.org/agnet/apiguide.shtml -
>
>
.
Je n'arrive pas à décocher le sous-type si on décoche un
sou-sous-type
Et pour l'affichage dans le listview, je pense qu'il est
préférable de faire
un boucle sur les chekbox cochées du treeview, car on si
décoche une
checkbox cela ne supprime pas l'information dans le
listview
Je n'arrive pas à décocher le sous-type si on décoche un
sou-sous-type
Et pour l'affichage dans le listview, je pense qu'il est
préférable de faire
un boucle sur les chekbox cochées du treeview, car on si
décoche une
checkbox cela ne supprime pas l'information dans le
listview
Je n'arrive pas à décocher le sous-type si on décoche un
sou-sous-type
Et pour l'affichage dans le listview, je pense qu'il est
préférable de faire
un boucle sur les chekbox cochées du treeview, car on si
décoche une
checkbox cela ne supprime pas l'information dans le
listview
-----Message d'origine-----
Hello! :O)Je n'arrive pas à décocher le sous-type si on décoche un
sou-sous-type
tu peux modifier le code de TreeView1_NodeCheck.. au lieu
'***
If (Node.Parent Is Node.Root) Then
'***
essai :
'***
If (Not Node Is Node.Root) Then
'***
ce qui signifie que le noeud parent d'un noeud sera
temps.. (sauf pour le premier niveau)Et pour l'affichage dans le listview, je pense qu'il est
préférable de faire
un boucle sur les chekbox cochées du treeview, car on si
décoche une
checkbox cela ne supprime pas l'information dans le
listview
Tu ne peux pas enlèver l'information du noeud ayant été
'***
Call ListView1.ListItem.Remove(Node.Key)
'***
Je ne sais pas comment tu rempli le listview, mais si tu
relation entre un ListItem et un Node, tu n'as
de l'ajout.
Quelque chose comme :
'***
Call ListView1.ListItems.Add(, Node.Key, Node.Text)
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -
http://www.mentalis.org/agnet/apiguide.shtml -
.
-----Message d'origine-----
Hello! :O)
Je n'arrive pas à décocher le sous-type si on décoche un
sou-sous-type
tu peux modifier le code de TreeView1_NodeCheck.. au lieu
'***
If (Node.Parent Is Node.Root) Then
'***
essai :
'***
If (Not Node Is Node.Root) Then
'***
ce qui signifie que le noeud parent d'un noeud sera
temps.. (sauf pour le premier niveau)
Et pour l'affichage dans le listview, je pense qu'il est
préférable de faire
un boucle sur les chekbox cochées du treeview, car on si
décoche une
checkbox cela ne supprime pas l'information dans le
listview
Tu ne peux pas enlèver l'information du noeud ayant été
'***
Call ListView1.ListItem.Remove(Node.Key)
'***
Je ne sais pas comment tu rempli le listview, mais si tu
relation entre un ListItem et un Node, tu n'as
de l'ajout.
Quelque chose comme :
'***
Call ListView1.ListItems.Add(, Node.Key, Node.Text)
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -
http://www.mentalis.org/agnet/apiguide.shtml -
.
-----Message d'origine-----
Hello! :O)Je n'arrive pas à décocher le sous-type si on décoche un
sou-sous-type
tu peux modifier le code de TreeView1_NodeCheck.. au lieu
'***
If (Node.Parent Is Node.Root) Then
'***
essai :
'***
If (Not Node Is Node.Root) Then
'***
ce qui signifie que le noeud parent d'un noeud sera
temps.. (sauf pour le premier niveau)Et pour l'affichage dans le listview, je pense qu'il est
préférable de faire
un boucle sur les chekbox cochées du treeview, car on si
décoche une
checkbox cela ne supprime pas l'information dans le
listview
Tu ne peux pas enlèver l'information du noeud ayant été
'***
Call ListView1.ListItem.Remove(Node.Key)
'***
Je ne sais pas comment tu rempli le listview, mais si tu
relation entre un ListItem et un Node, tu n'as
de l'ajout.
Quelque chose comme :
'***
Call ListView1.ListItems.Add(, Node.Key, Node.Text)
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -
http://www.mentalis.org/agnet/apiguide.shtml -
.
-----Message d'origine-----
Hello! :O)Je n'arrive pas à décocher le sous-type si on décoche un
sou-sous-type
tu peux modifier le code de TreeView1_NodeCheck.. au lieu
'***
If (Node.Parent Is Node.Root) Then
'***
essai :
'***
If (Not Node Is Node.Root) Then
'***
ce qui signifie que le noeud parent d'un noeud sera
temps.. (sauf pour le premier niveau)Et pour l'affichage dans le listview, je pense qu'il est
préférable de faire
un boucle sur les chekbox cochées du treeview, car on si
décoche une
checkbox cela ne supprime pas l'information dans le
listview
Tu ne peux pas enlèver l'information du noeud ayant été
'***
Call ListView1.ListItem.Remove(Node.Key)
'***
Je ne sais pas comment tu rempli le listview, mais si tu
relation entre un ListItem et un Node, tu n'as
de l'ajout.
Quelque chose comme :
'***
Call ListView1.ListItems.Add(, Node.Key, Node.Text)
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -
http://www.mentalis.org/agnet/apiguide.shtml -
.
-----Message d'origine-----
Hello! :O)
Je n'arrive pas à décocher le sous-type si on décoche un
sou-sous-type
tu peux modifier le code de TreeView1_NodeCheck.. au lieu
'***
If (Node.Parent Is Node.Root) Then
'***
essai :
'***
If (Not Node Is Node.Root) Then
'***
ce qui signifie que le noeud parent d'un noeud sera
temps.. (sauf pour le premier niveau)
Et pour l'affichage dans le listview, je pense qu'il est
préférable de faire
un boucle sur les chekbox cochées du treeview, car on si
décoche une
checkbox cela ne supprime pas l'information dans le
listview
Tu ne peux pas enlèver l'information du noeud ayant été
'***
Call ListView1.ListItem.Remove(Node.Key)
'***
Je ne sais pas comment tu rempli le listview, mais si tu
relation entre un ListItem et un Node, tu n'as
de l'ajout.
Quelque chose comme :
'***
Call ListView1.ListItems.Add(, Node.Key, Node.Text)
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -
http://www.mentalis.org/agnet/apiguide.shtml -
.
-----Message d'origine-----
Hello! :O)Je n'arrive pas à décocher le sous-type si on décoche un
sou-sous-type
tu peux modifier le code de TreeView1_NodeCheck.. au lieu
'***
If (Node.Parent Is Node.Root) Then
'***
essai :
'***
If (Not Node Is Node.Root) Then
'***
ce qui signifie que le noeud parent d'un noeud sera
temps.. (sauf pour le premier niveau)Et pour l'affichage dans le listview, je pense qu'il est
préférable de faire
un boucle sur les chekbox cochées du treeview, car on si
décoche une
checkbox cela ne supprime pas l'information dans le
listview
Tu ne peux pas enlèver l'information du noeud ayant été
'***
Call ListView1.ListItem.Remove(Node.Key)
'***
Je ne sais pas comment tu rempli le listview, mais si tu
relation entre un ListItem et un Node, tu n'as
de l'ajout.
Quelque chose comme :
'***
Call ListView1.ListItems.Add(, Node.Key, Node.Text)
'***
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -
http://www.mentalis.org/agnet/apiguide.shtml -
.