7
votes

C # ListView avec des cases à cocher, Cochez la case Automatique vérifiée lorsque plusieurs lignes Sélectionnent des lignes

J'utilise un contrôle ListView avec Sélectionner MultiRow et Fullrow sur. Lorsque je sélectionne plusieurs rangées à la fois, certaines de mes rangées deviennent magiquement vérifiées. Cela se produit lorsque vous faites glisser la souris sur et aussi en sélectionnant un et décalage en cliquant sur une autre.

Voir l'image décrivant la question ici: text alt

Qu'est-ce qui se passe dans le pamplemousse? Quiconque?


1 commentaires

Grande question! Décrit très clairement le problème.


3 Réponses :


4
votes

2 commentaires

Bonjour, et bienvenue à. Lorsque votre réponse est simplement une liaison ailleurs, envisagez simplement de poster un commentaire avec le lien. Pour une réponse, cela aide si vous fournissez au moins une brève perspective sur ce que le lien est à propos. Néanmoins, une bonne réponse!


Votre code dans ce lien a résolu mon problème après tant de recherches! Merci



7
votes

Malheureusement, il y a des bugs dans la classe ListView, c'est l'un d'entre eux. Le code suivant est une solution qui a fonctionné pour moi.

Edit: Désolé, cela ne fonctionne pas tout à fait raison, bien qu'il empêche l'erreur que vous montrez dans votre question. Cela empêche de sélectionner plusieurs éléments, puis de les vérifier en cliquant sur la case à cocher. xxx


1 commentaires

Pour permettre la mise basculante de plusieurs éléments en cliquant directement sur la case à cocher, j'ai simplement changé le Mousedown = true; à MouseDown = E.x> 20; . Cela fonctionne pour moi car les cases à cocher sont à gauche de la fenêtre ListView.



1
votes

c'est une question simple essayez simplement ceci xxx


1 commentaires

C'est la meilleure réponse à mon avis. Cela étant dit, à ma fin, j'ai ajouté || (ModificationKeys == (Keys.Control | Keys.shift)) au prédicat au cas où l'utilisateur pour une raison quelconque appuie à la fois Maj + CTL.