C# 的 DataGripView 在大数据时,如何加速?

原来看官方说明,要把虚拟模式打开,VirtualMode = true,然后自己搞内存缓存,才会快。

然而我试过了,并不会。因为我的数据是在sqlite中的,搞了cache 一样到了边界时,还是要触发取一批数据。

并且刷新时,还是明显可见的画格子那种慢速操作。

后来,某一天在网上找到,居然把 DataGridView 手工设置成 双缓冲 就可以了。。试了一下,以我那几万条的数据,根本就不需要使用到 虚拟模式 都完全可以满足使用需求了。

这里记录一下。

 1 public partial class MyClass: UserControl
 2 {
 3 
 4         public MyClass()
 5         {
 6             InitializeComponent();
 7             SetDataGridViewDoubleBuffered();
 8         }
 9 
10         private void SetDataGridViewDoubleBuffered()
11         {
12             Type dgvType = this.dgvMarketHistoryData.GetType();
13             PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
14             pi.SetValue(dgvMarketHistoryData, true, null);
15         }
16 }
原文地址:https://www.cnblogs.com/pencilstart/p/13508565.html