Listview

cs_ghannem Messages postés 37 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 11 juin 2008 - 3 nov. 2004 à 03:55
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 7 nov. 2004 à 22:13
Comment apres avoir selectionner un element dans une listvioew qui a le style checkbox rendre cet element enabled et que l'utilsateur ne peut pas toucher a ca.

merci et bonne journée.

10 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
3 nov. 2004 à 11:47
conserver la sélection dans le tag de chaque Ligne:
si tag = 0 --> sélection False
si tag = 1 --> sélection True

ensuite:

Private Sub Lv_ItemCheck(ByVal Item As MSComctlLib.ListItem)
If Item.Tag = 0 Then
Item.Checked = True
Else
Item.Checked = False
End If
End Sub

Daniel
0
cs_ghannem Messages postés 37 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 11 juin 2008
3 nov. 2004 à 19:43
Merci pour le code mais j'ai eu un probleme c'est que ma liste si j'efface pas l'element checké elle reste dans une boucle infinie par ce que en fait moi la liste des element checké je l'ai fait passé dans un treeview il fallait donc que j'efface les elements deja selectionné.

je vais essayer encore et si t'a une idee pour moi ca sera gentyil de ta part.

merci comme meme.
0
cs_ghannem Messages postés 37 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 11 juin 2008
3 nov. 2004 à 19:59
mais est ce que tu peux m'aider a generer les chemins possibles dans un treeview tout en prenant en compte les boucles c'est a dire quand il ya des boucles on fait quoi.

je m'explique encore:

parent note A, qui a des enfants A, B, C et on peut trouver le A comme enfant chez A aussi et ainsi de suite ce qui fait qu'a un moment donné on va avoir

A, A, A, ...
A, B,

je veux que dans le cas ou on se trouve avec le premier chemin on le remplace par A*

merci pour ton aide.
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
3 nov. 2004 à 20:29
Pour trouver les parents des parents:

Dim nod1 As Node
Set nod1 = TreeView.SelectedItem
Do While (nod1 Is Nothing) = False
Set nod1 = nod1.Parent
Loop

Pout trouver un enfant c'est Child et pour trouver le suivant c'est next.

si on veut descendre, on cherche Les enfants, puis l'enfant de l'enfant, ensuite l'enfant suivant,etc..., etc...

une seule solution:
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 34
3 nov. 2004 à 20:34
désolé j'ai envoyé trop tôt.

La seule solution: La récursivité

début:
chercher enfant

si trouvé --> reboucler au début

traiter si nécessaire

chercher le suivant

si trouvé --> reboucler au début
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
3 nov. 2004 à 22:20
Pour parcourir en descendant
appel par Rchild TreeView.SelectedItem

Private Sub Rchild(n As MSComctlLib.Node)
' c'est ici qu'on traite le noeud
    MsgBox n.Text
' recherche des enfants
    If Not n.Child Is Nothing Then
       Rchild n.Child
       End If
' plus d'enfants, on revient au noeud suivant
    If Not n.Next Is Nothing Then
       Rchild n.Next
       End If
End Sub
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
3 nov. 2004 à 22:22
Pour parcourir en remontant:

Private Sub Rparent(n As MSComctlLib.Node)
' c'est ici qu'on traite le noeud
    MsgBox n.Text
'   recherche du précédent
    If Not n.Previous Is Nothing Then
       Rparent n.Previous
       Exit Sub
       End If
' recherche du parent
    If Not n.Parent Is Nothing Then
       Rparent n.Parent
       End If
End Sub
0
cs_ghannem Messages postés 37 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 11 juin 2008
3 nov. 2004 à 23:10
je te remercie beaucoup pour ton aide c'est vraiement genial. c'est un grand honneur de travailler ds un forum comme celui de vbfrance.com.

merci je te tien au courant de mon travail.
0
cs_ghannem Messages postés 37 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 11 juin 2008
7 nov. 2004 à 18:50
j'ai un probleme avec la procedure Rchild c'est que j'arrive pas a me pointer sur le premier element de la treeview quand j'appelle la procedure.

Est ce que tu peux m'aider.

merci d'avance.
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
7 nov. 2004 à 22:13
Retourne le tout premier Node de la Treeview ou nothing si rien trouvé.

Public Function GetFirstTVNode(objTV As TreeView) As Node
Dim nod As Node
On Error GoTo NoNodes

' Will err here if there are no treeview nodes
Set nod = objTV.Nodes(1)

' Get the first node's highest parent node
Do While (nod.Parent Is Nothing) = False
Set nod = nod.Parent
Loop

' Return the highest parent node's first sibling
Set GetFirstTVNode = nod.FirstSibling

NoNodes:
End Function
0
Rejoignez-nous