在ListView所在的窗体类文件里面,比如Form1,另写一个扩展方法,代码如下
public static class DoubleBufferListView
{
/// <summary>
/// 双缓冲,解决闪烁问题
/// </summary>
public static void DoubleBufferedListView(this ListView dgv, bool flag)
{
Type dgvType = dgv.GetType();
PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
pi.SetValue(dgv, flag, null);
}
}
之后在窗体里调用上面的方法,如下
public Form1()
{
InitializeComponent();
/// 新添加这一句调用就行了,如果有ListViews也是这样添加,
/// 但要注意方法里改为有关ListViews的声明即可
ListView1.DoubleBufferedListView(true);
}