I’m programming one easy C# application, and i need onScroll event on Listview. So i created class ListviewEx witch inherits original ListView. I found how to detect scroll
Martijn answer will work but will not catch all scrolling. The WM_VSCROLL message is only sent when the user manipulates the scroll bar directly. If the user scrolls using a mouse wheel, or uses the UpArrow/DownArrow/PageUp/PageDown keys, then the WM_VSCROLL will not be sent.
You can catch scrolling that is caused by the scroll bar and by the mouse wheel by listening for the LVN_BEGINSCROLL notification message.
Catching scrolling that occurs when using keys is harder. No message that is sent to the control when it scrolls in response to a PageUp key, for example. The best that can be done in that case is to listen for KeyPress events, and then check for changes to the scroll bar positions before and after the event.
This could, of course, be complete overkill for your purposes. The WM_VSCROLL message may be completely sufficient for what you want. But if you want to catch all possible scrolling, have a look at the code in ObjectListView which already has a Scroll event that catches all these possibilities.