Fonctionnement des treeview avec checkbox

Signaler
Messages postés
9
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
6 avril 2005
-
Messages postés
10
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
11 décembre 2008
-
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

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
29
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
Messages postés
521
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
11 septembre 2008
6
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
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
29
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
Messages postés
10
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
11 décembre 2008

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
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
29
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
Messages postés
10
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
11 décembre 2008

Merci Beaucoup a toit daniel, j'y été presque parvenu, il me manque le Node. pour utiliser la proproété parent.

Encore Merci.

DOCKYF