WinForm 加载大数据时不闪烁的ListView
阅读原文时间:2023年07月08日阅读:1

自己之前做小工具的时候,遇到这个问题,记录一下。。。

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);

        }

    }

}

}

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器