Manipulation de l'événement de défilement dans listview dans c #
J'ai une listview qui génère des vignettes à l'aide d'un backgroundworker. Lorsque la liste est en cours de défilement, je veux mettre en pause le backgroundworker et obtenir la valeur actuelle de la volutes de la zone, lorsque l'utilisateur n'arrête le défilement de la liste, de reprendre le backgroundworker à partir de l'élément en fonction de la valeur de la volutes de la zone.
Est-il possible de gérer événement scroll d'une listview? si oui, comment? si non alors quelle est une bonne alternative selon ce que j'ai décrit ci-dessus?
source d'informationauteur murasaki5
Vous devez vous connecter pour publier un commentaire.
Vous aurez pour ajouter le support pour la liste de la classe de sorte que vous pouvez être informé sur les événements de défilement. Ajoutez une nouvelle classe de votre projet et de coller le code ci-dessous. Compiler. Déposez le nouveau contrôle listview à partir du haut de la boîte à outils sur votre formulaire. Mettre en œuvre un gestionnaire pour le nouveau événement Scroll.
Méfiez-vous que la position de défilement (ScrollEventArgs.NewValue) n'est pas significative, il dépend du nombre d'éléments dans la liste. J'ai forcé à 0. Suivant vos besoins, vous souhaitez regarder pour la ScrollEventType.EndScroll notification de savoir quand l'utilisateur arrêté de défiler. Autre chose vous aide à détecter que l'utilisateur a commencé à défiler. Par exemple:
Voir ce post ListView Événement Scroll
La capture de l'événement scroll maintenant est facile à faire .net 4.
Attraper l'événement Chargé de votre ListView (m_ListView) et de le faire:
ensuite, mettre en œuvre votre ScrollViewer_ScrollChanged fonction:
Basée sur le post que @Adriaan Stander posté ma classe pour élever des événements de défilement est ci-dessous.
L'utiliser comme si...
Déclarer un champ:
L'instancier avec les contrôles dont vous avez besoin de savoir issrolling:
Fil dans un gestionnaire d':
Gestionnaire de l'événement:
L'événement args dans le cas soulevé pourrait être modifié pour contenir les informations les plus utiles. J'ai juste besoin de savoir mon contrôle avait fait défiler!