C#中使用ListView动态添加数据不闪烁

来源:互联网 发布:淘宝卖家怎么改运费 编辑:程序博客网 时间:2024/05/16 13:52

首先,自定义一个类ListViewNF,继承自 System.Windows.Forms.ListView

class ListViewNF : System.Windows.Forms.ListView
    {
        public ListViewNF()
        {
            // 开启双缓冲
            this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint,true);

            // Enable the OnNotifyMessage event so we get a chance to filter out
           
// Windows messages before they get to the form's WndProc
            this.SetStyle(ControlStyles.EnableNotifyMessage,true);
        }

        protected overridevoid OnNotifyMessage(Message m)
        {
            //Filter out the WM_ERASEBKGND message
            if (m.Msg != 0x14)
            {
                base.OnNotifyMessage(m);
            }

        }


    }

然后,修改我们的Form代码中定义ListView的位置,将原来的

System.Windows.Forms.ListView listView1;

修改为

ListViewNF listView1;

 

 

ok,然后随便怎么insert\add这个listView1,都不会有半点的闪烁了.

 

0 0
原创粉丝点击