C# Winform ListView 雙緩衝開啟
阿新 • • 發佈:2019-01-05
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 override void OnNotifyMessage(Message m) { //Filter out the WM_ERASEBKGND message if (m.Msg != 0x14) { base.OnNotifyMessage(m); } } }
使用ListView之前 宣告下 然後替換掉就啟用雙緩衝了。
private System.Windows.Forms.ListView listView1; ---> private ListViewNF listView1;
this.listView1 = new System.Windows.Forms.ListView(); ---> this.listView1 = new ListViewNF();