双缓冲模式DoubleBuffered解决DataGridView重绘慢的问题

Winform的DataGridView在绑定比较多的数据后,每次选中不同单元格或者下拉滚动条时,DataGridView重绘都非常慢,明显看到它从上往下一行一行重绘,这种感觉非常卡顿。

其实这个问题在.NET程序员中早就有讨论,且有了解决方案,办法就是用打开双缓冲模式 DoubleBuffered。但是DataGridView根本找不到这个属性,因为这个属性默认时被隐藏的。不过不要紧,高手们想出了用反射来设置这个属性的方法,具体代码如下。

可以把下面的代码放到Form_OnLoad()事件中,其中dataGridView1就是你要设置属性的dataGridView1实例名。

Type dgvType = this.dataGridView1.GetType();
PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
pi.SetValue(this.dataGridView1, true, null);

打开这个属性之后,再下来DataGridView数据时,没有一点卡顿了,用户体验非常棒。 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值