Umgang mit scroll-event auf listview in c#
Ich habe eine listview erzeugt thumbnail mit einem backgroundworker. Wenn das listview-Steuerelement wird gescrollt, ich will pause der backgroundworker und der aktuelle Wert den Bereich gescrollt, wenn der Benutzer beendet das scrollen der listview, wieder die backgroundworker-ausgehend von der Position gemäß dem Wert des gescrollten Bereichs.
Ist es möglich, zu behandeln scroll-Ereignis des listview? wenn ja, wie? wenn nicht, was ist dann eine gute alternative, nach dem, was ich oben beschrieben habe?
InformationsquelleAutor murasaki5 | 2009-12-05
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie Unterstützung für die ListView-Klasse, so können Sie benachrichtigt werden über die scroll-Ereignisse. Fügen Sie eine neue Klasse zum Projekt und fügen Sie den folgenden code ein. Kompilieren Sie. Drop das neue listview-Steuerelement aus der Spitze der toolbox auf das Formular. Implementieren Sie einen handler für die neue Scroll-Ereignis.
Beachten Sie, dass die scroll-position (ScrollEventArgs.NewValue) ist nicht sinnvoll, es hängt von der Anzahl der Elemente in der ListView. Ich Zwang ihn auf 0. Nach Ihren Anforderungen, die Sie sehen möchten, für die ScrollEventType.EndScroll Benachrichtigung zu wissen, wenn der Benutzer beendet scrolling. Alles andere hilft Sie erkennen, dass der Nutzer begann zu Blättern. Zum Beispiel:
diese Antwort entschieden haben, einen fiesen bug net framework 2.0 mit Gitternetzlinien
InformationsquelleAutor Hans Passant
Finden Sie in diesem Beitrag ListView Scroll-Ereignis
InformationsquelleAutor Adriaan Stander
Fang das scroll-Ereignis ist jetzt leicht gemacht .net 4.
Fangen das Loaded-Ereignis von Ihrem ListView (m_ListView) und tun Sie dies:
dann, setzen Ihre ScrollViewer_ScrollChanged Funktion:
InformationsquelleAutor metao
Basiert auf dem Beitrag, auf den @Adriaan Stander geschrieben, meine Klasse für die Anhebung der scroll-Ereignisse ist unten.
Verwenden Sie es wie so...
Deklarieren Sie ein Feld:
Instanziieren es mit den Kontrollen, die Sie brauchen, um wissen issrolling:
Draht in einer Prozedur:
Handler das Ereignis:
Die event Argumente in der Veranstaltung erhoben werden könnten optimiert zu enthalten weitere nützliche Informationen. Ich brauchte nur zu wissen, meine Kontrolle hatte, wurde gescrollt!
private const uint WM_MOUSEWHEEL = 0x020A;
wenn Sie wollen, dass.InformationsquelleAutor Dib