首页 > Windows开发 > 详细

DataGridView双缓冲

时间:2020-08-25 14:45:29      阅读:102      评论:0      收藏:0      [点我收藏+]

比如有1000个箱子,我们要时时观看箱子的数据情况。我们要在一个DataGridView中进行全部监视。串口通信部分我就不说了,因为winform做有自带的SerialPort控件,使用也非常方便。

 

   先给大家上个图

   

技术分享图片

 

  每个小黑色的部分都是图片,这也代表的部分箱子。如果箱子成千上万的话,图片就会非常非常多。当窗体启动的话,箱子数目非常多的时候,拉动滚动条的时候,DataGirdView中的图片闪烁非常厉害。以前只知道Form,panel之类的可以使用双缓存,不知道DataGridView也可以使用双缓冲。当然DataGridView双缓冲的接口是没有对外开放的,只能通过反射获取。

 

    以下是反射获取双缓存代码:

           public Form()
        {
            //设置窗体的双缓冲
            this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true);
            this.UpdateStyles();
           
            InitializeComponent();

 

            //利用反射设置DataGridView的双缓冲
            Type dgvType = this.dataGridView.GetType();
            PropertyInfo pi = dgvType.GetProperty("DoubleBuffered",
                BindingFlags.Instance | BindingFlags.NonPublic);
            pi.SetValue(this.dataGridView, true, null);
        }

 

      其中this.dataGridView是自己拖的控件,name为:dataGridView。设置好以后,闪烁的问题就解决了。winform用的少,可能对于.NET方向的大牛很easy。但是如果正好碰到类似问题的童鞋就可以参照下了。呵呵!!!!

 

DataGridView双缓冲

原文:https://www.cnblogs.com/tinaluo/p/13559128.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!