Is there a way to specify the amount by which the scrollbar in a grid will scroll when using either of the scroll-up or scroll-down keys or the mouse wheel to scroll the grid?

Since I couldn't find any parameter to do this, I tried to override GridView and handle scroll and mousewheel events myself. On receiving a mousewheel or scroll event, I programmatically scroll the scrollbar further in the same direction while keeping a flag to avoid going into an infinite event loop, somewhat similar to LiveGridView's implementation.

However, this approach fails when the user scrolls the grid by dragging the scroller over the scroll track. Specifically, when the scroller is dragged to the top of the grid, instead of displaying the topmost rows, some other rows further down are displayed. Is there a way to differentiate between events generated by clicking the scroll-up or scroll-down buttons and those generated by dragging the scroller? If there is, then I can handle the two separately and rectify the issue.