Introduction
When a DataGridView
use a big size of data, it tends to get really slow to scroll and it could became problem.
Using the code
Microsoft has decided to hide the DoubleBuffered
property, but you can set it anyway with reflection.
Imports System.Reflection
Usually double buffering helps only to reduce flickering, but for the DataGridView
it also significantly reduces the amount of functions being called internally in the DataGridView
.
Public Sub EnableDoubleBuffered(ByVal dgv As DataGridView)
Dim dgvType As Type = dgv.[GetType]()
Dim pi As PropertyInfo = dgvType.GetProperty("DoubleBuffered", _
BindingFlags.Instance Or BindingFlags.NonPublic)
pi.SetValue(dgv, True, Nothing)
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
EnableDoubleBuffered(MyDataGridView, True)
End Sub