Bonjour à tous
J'ai une ListView avec des cases à cocher.
Comment détecter le cochage ou décochage en temps réel et déclencher une action à chaque modif (ex: changer la couleur de la ligne cochée)
Bonjour à tous
J'ai une ListView avec des cases à cocher.
Comment détecter le cochage ou décochage en temps réel et déclencher une action à chaque modif (ex: changer la couleur de la ligne cochée)
Ceci n'est pas compliqué.
Tu écris une procédure, et tu gères dans le Handles un événement de type CheckBox1.Checked.
Je n'ai pas la syntaxe exacte en mémoire mais cela ressemble furieusement à ceci. Tu peux placer plusieurs entités et évenements dans la clause Handles de ta procédure
EDIT, j'ai pris le temps d'ouvrir VS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Public Class Form1 Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged ''TON CODE ICI End Sub End Class
Une erreur fréquente que les gens font quand ils tentent de réaliser quelque chose à l'épreuve des imbéciles est de sous-estimer l'ingéniosité de ceux-ci. - Douglas Adams
merci pour cette aide rapide
mais je suis débutant et je ne sais pas comment adapter ton code sachant que le nombre de lignes dans mon ListView est variable...
et je dois surveiller toutes les lignes (de 0 a r)
ListView1.Items(r)
peut être en utilisant une classe ?
mais ça se complique pour moi
Si ton nombre de lignes dans ton ListView est variable, dans ce cas il suffit de récupérer le nombre d'items présents dedans :
Je retire 1 à NbVarLV puisque l'index de tableaux et de collections en .NET commence à zéro. Si tu as donc 35 variables dans ton ListView, la dernière portera l'index 34. Si tu ne décrémentes pas de un, tu auras une jolie exception.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Dim NbVarLV as Integer = 0 ''nbre de valeurs dans le listview NbVarLV = ListView1.Items.Count ''je renseigne cette valeur For i = 0 to NbVarLV -1 If CheckBox1.Checked = True then ''si la case est cochée (exemple) ListView1.Item(i) = 1 else ''sinon ListView1.Item(i) = 0 Next ''Suite des instructions
Je l'ai fait de mémoire, il me semble que c'est comme ça que ça se présente. Si tu m'en dis un peu plus, je pourrais t'aider un peu mieux, là ça reste très générique
Pas besoin de classe, ne t'en fais pas !
Une erreur fréquente que les gens font quand ils tentent de réaliser quelque chose à l'épreuve des imbéciles est de sous-estimer l'ingéniosité de ceux-ci. - Douglas Adams
OK jusque la j'avais plus ou moins trouvé la même solution
mais cette routine ne s'execute que quand on la déclanche volontairement.
Ce que je voudrais c'est quelle soit déclanchée automatiquement à chaques cochages de case.
ce qui n'est pas le cas.
J'ai essaye avec la detection de changement d'item selectionné dans la LIstView mais ça ne marche pas car le cochage ne change pas l'item selectionné.
Je cherche "juste" un moyen de surveiller si l'utilisateur coche ou décoche un case dans la ListView.....
Si tu mets tes éléments dans une procédure comme je t'ai montré plus haut, ça sera géré automatiquement...
J'arrive pas trop à concevoir le souci, est-ce que tu peux m'en dire un peu plus, parce que là, ça reste flou ...
Une erreur fréquente que les gens font quand ils tentent de réaliser quelque chose à l'épreuve des imbéciles est de sous-estimer l'ingéniosité de ceux-ci. - Douglas Adams
Merci beaucoup JohnPetrucci de te pencher sur mon problème
A force de tâtonnement j'ai fini part trouver la solution à mon problème.
il suffit d'utiliser la méthode :
qui détecte le cochage d'une case sur unr ligne de ListView
Code : Sélectionner tout - Visualiser dans une fenêtre à part ListView1_ItemChecked
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager