解决C#中ListView闪烁的办法
在项目中使用ListView演示数据的变化过程, 发现闪烁得太厉害了, Google并综合对比后, 发现下面的方法比较简单且有效, 记录一下:
1 internal class ListViewNeverFlickering : System.Windows.Forms.ListView 2 { 3 public ListViewNeverFlickering() 4 { 5 // Activate double buffering 6 this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); 7 8 // Enable the OnNotifyMessage event so we get a chance to filter out 9 // Windows messages before they get to the form's WndProc 10 this.SetStyle(ControlStyles.EnableNotifyMessage, true); 11 } 12 13 protected override void OnNotifyMessage(Message m) 14 { 15 //Filter out the WM_ERASEBKGND message 16 if (m.Msg != 0x14) 17 { 18 base.OnNotifyMessage(m); 19 } 20 } 21 }