原理,关键是要在该控件上打开双缓冲区,在没有双缓冲区的时候,可以采用把窗体设置为VISIBLE = FALSE可以提高一定的速度,但给用户的体验不友好。双缓冲区模式可以解决这个问题。假设DataGridView的名字为dgvAnalog,下面代码用于启动双缓冲区。
Dim dgvType As Type
Dim ppInfo As PropertyInfo
Dim b As Boolean
dgvType = dgvAnalog.GetType()
ppInfo = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance Or BindingFlags.NonPublic)
b = True
ppInfo.SetValue(dgvAnalog, b, Nothing)
启动双缓冲区后,速度有本质的提升。