代码如下:
/// <summary>
///双缓冲DataGridView,解决闪烁
/// </summary>
class DoubleBufferListView : DataGridView
{
public DoubleBufferListView()
{
SetStyle(ControlStyles.DoubleBuffer |ControlStyles.OptimizedDoubleBuffer |
ControlStyles.AllPaintingInWmPaint,true);
UpdateStyles();
}
}
然后在DataGridView所在窗体的InitializeComponent方法中,更改控件类型实例化语句为:
//privateSystem.Windows.Forms.DataGridView DataGridView1; (屏蔽掉)
privateForms1.DoubleBufferListView DataGridView1;
//this.dataGridView1 = newSystem.Windows.Forms.DataGridView(); (屏蔽掉)
this.dataGridView1 = new DoubleBufferListView();
**///////////////////////////////////////////////////////////////////////////////////////////////
///<summary>
///双缓冲ListView ,解决闪烁
/// </summary>
class DoubleBufferListView : ListView
{
public DoubleBufferListView()
{
SetStyle(ControlStyles.DoubleBuffer |ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint,true);
UpdateStyles();
}
}
然后在ListView所在窗体的InitializeComponent方法中,更改控件类型实例化语句为:
//privateSystem.Windows.Forms.ListView ListView1; (屏蔽掉)
privateForms1.DoubleBufferListView ListView1;
//this.listView1 = newSystem.Windows.Forms.ListView(); (屏蔽掉)
this.listView1 = new DoubleBufferListView();
是用双缓冲机制解决的
注: 这二个类要放在Form1类中,添加完代码后,重新生成解决方案。。。