上代码:
在该窗体 中添加如下代码开启 双缓冲:
public static class DoubleBufferListView
{
/// <summary>
/// 双缓冲,解决闪烁问题ListView
/// </summary>
/// <param name="lv"></param>
/// <param name="flag"></param>
public static void DoubleBufferedListView(this ListView listView, bool flag)
{
Type type= listView.GetType();
PropertyInfo pi = type.GetProperty("DoubleBuffered",
BindingFlags.Instance | BindingFlags.NonPublic);
pi.SetValue(listView, flag, null);
}
}
//调用方法
public Form1()
{
InitializeComponent();
ListView1.DoubleBufferedListView(true);
}
DataGridView刷新数值时闪烁也可以用次方法:
如下:
在这里插入代码片
public static class DoubleBufferDataGridView
{
///
/// 双缓冲,解决闪烁问题DataGridView
///
///
///
public static void DoubleBufferedDataGirdView(this DataGridView dataGridView bool flag)
{
Type type= dataGridView.GetType();
PropertyInfo pi = type.GetProperty(“DoubleBuffered”, BindingFlags.Instance | BindingFlags.NonPublic);
pi.SetValue(dataGridView, flag, null);
}
}
public Form1()
{
DataGridView1.DoubleBufferedDataGirdView(true);
}
做项目时这个问题好久都没解决掉,网上解决这个问题的方法大多不行,所以我也发一个。