I am using windows forms C#.
As shown in the screen shot, I have a Form which has a user control, a tab control and a DataGridView (30 rows and 17 columns). I read data from SQL Server to fill the DataGrdiView.
The issue:
When I scroll horizontally the DataGridView
flickers a lot. However scrolling vertically works perfect with no flickering.
I had a look here, here, here and here but none of them related to my issue.
Anyone knows any solution to prevent DataGridView
from flickering when scrolling horizontally.
In case anybody wanted to see this in Visual Basic.
This worked great.
use this class
and enter this code.
enjoy.
All you need is to use a
DoubleBuffered
DataGridview
subclass:It is also possible to inject double-buffering into a normal out-of-the-box control, but I prefer to have a class of my own as this is extensible in other ways as well..
I have expanded the class by a public property to allow turning
DoubleBuffering
on and off..:..and tested it with a load of 200 columns and 2000 rows. The difference is obvious; while vertical scrolling did work without horizontal scrolling needs
DoubleBuffering
..Note that the Form also has a
DoubleBuffering
property, but that will not propagate to any embedded controls!Or you can use a function like this