Fonctionnement des treeview avec checkbox

roro_user
Messages postés
9
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
6 avril 2005
- 16 nov. 2004 à 14:14
dockyf
Messages postés
10
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
11 décembre 2008
- 3 mai 2005 à 14:22
Bonjour,

J'ai crée un treeview avec checkbox, maintenant je veux exploiter cet arbre, mais je n'arrive pas a recuperer les noeuds coché.

J'utilise la propriété check et count dans tous les sens mais ca ne marche pas.

ex: Arbre.SelectedItem().Checked

De plus je voudrais que l'utilisateur puisse cocher une seule case, ya t-il un moyen de faire ceci?
Sinon est-ce possible de compter le nombre de case cochées avec la methode "count"

Merci

6 réponses

Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
16 nov. 2004 à 14:50
si tu veux une seule case cochée, il faut décocher la précédente à chaque fois.

----- général -----
Dim TvCheck As Integer

----- évênement Check -----
Private Sub TreeView_NodeCheck(ByVal Node As MSComctlLib.Node)
If TvCheck > 0 Then
TreeView.Nodes(TvCheck).Checked = False
End If
TvCheck = Node.Index
End Sub
0
thierrydelepine
Messages postés
521
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
11 septembre 2008
6
16 nov. 2004 à 15:19
pour parcourir tes nodes de ta treeview et reperer ceux qui sont checké

For i = 1 To TreeView1.Nodes.Count
If TreeView1.Nodes.Item(i).Checked = True Then
'Ca y est tu as trouvé un node checked
msgbox TreeView1.Nodes(i).Text
End If
Next

pour ce qui est d'avoir qu'un seule node checked a la fois,

il te suffit dans la fonction :
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
de desectionner tous les nodes sauf celui qui viens d'etre selectionné via la boucle :
For i = 1 To TreeView1.Nodes.Count ........

pour Unchecked un node :
TreeView1.Nodes.Item(i).Checked = False
0
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
16 nov. 2004 à 15:34
pour compter le nombre de cases cochées, il suffit de faire +1 au moment où elle est cochée, et -1 au moment où elle est décochée. ce qui évite de faire une boucle.

----- général -----
Dim NbCheck As Integer

----- évênement Check -----
Private Sub Tv_NodeCheck(ByVal Node As MSComctlLib.Node) If Node.Checked Then NbCheck NbCheck + 1 Else NbCheck NbCheck - 1
End Sub
0
dockyf
Messages postés
10
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
11 décembre 2008

3 mai 2005 à 08:33
slt,

J'utilise un treeview avec checkedboxes et j'ai besoin d'aide. Je souhaite savoir si il y a la possibilité de cocher le parent lorsque je cocher l'un des enfants.

DOCKYF
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
3 mai 2005 à 11:53
Private Sub TreeView_NodeCheck(ByVal Node As MSComctlLib.Node)
If Not Node.Parent Is Nothing Then
Node.Parent.Checked = Node.Checked
End If
End Sub

Le parent (s'il existe) sera coché ou décoché en même temps

Daniel
0
dockyf
Messages postés
10
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
11 décembre 2008

3 mai 2005 à 14:22
Merci Beaucoup a toit daniel, j'y été presque parvenu, il me manque le Node. pour utiliser la proproété parent.

Encore Merci.

DOCKYF
0