2014.2.23加载大数据时不闪烁的listView

 

namespace 相册处理

{

    //将ListView重载为此新类,解决加载过程中闪烁的问题

    //在designer.cs中改写:

    //private ListViewNeverFlickering listView1;

    //this.listView1 = new ListViewNeverFlickering();

 

    internal class ListViewNeverFlickering : System.Windows.Forms.ListView

    {

        public ListViewNeverFlickering()

        {

            // Activate double buffering

            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 override void OnNotifyMessage(Message m)

        {

            //Filter out the WM_ERASEBKGND message

            if (m.Msg != 0x14)

            {

                base.OnNotifyMessage(m);

            }

        }

    }

}

posted on 2016-10-15 18:36  mol1995  阅读(274)  评论(0编辑  收藏  举报

导航