Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
505
Slow UltraGrid scrolling on large MouseWheel delta scrollwheel movements
posted

We have a fairly large datagrid with ~30 columns, and thousands of rows.

When the user grabs the scrollbar with the mouse button and scrolls up/down, the grid performs well and scrolling is fast enough.

When the user instead uses the mouse wheel to scroll up and down, performance is good on small scroll movements. However, on large movements, the grid just freezes up for a few seconds, providing a poor user experience.

We've attached the following to the MouseWheel event on the grid:

 

        void LayoutUltraGrid_MouseWheel(object sender, MouseEventArgs e)

        {

            Debug.WriteLine("MouseWheel Delta: " + e.Delta);

        }

 

And have noticed on small deltas (+/-120) we get good performance. On large deltas (i.e. when the user attempts to scroll a long distance rapidly the rolling the wheel quickly), for example +/-960, we get the freeze-up.

Is there a way to improve this situation? Perhaps by filtering out the large deltas and restricting only small deltas to be processed? We think that may solve our problem but are wondering if the grid makes it easy to support such an approach using the provided API.

Parents
  • 505
    Suggested Answer
    posted

    The best solution we have found so far is to inherit the grid and override OnMouseWheel, and filtering out large scrolls and instead replacing them with page up/down scrolling, which gives a more responsive user interface that doesn't freeze-up.

Reply Children