C#datagridview 防止闪烁的方法

Posted 何华荣博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#datagridview 防止闪烁的方法相关的知识,希望对你有一定的参考价值。

描述:拉动DataGridView滚动条时会出现闪烁,看起来像是在重画,感觉不是很好。

解决方式:采用双缓存机制,在方案中添加方法。

代码:

public static class ExtensionMethods
{
    public static void DoubleBuffered(this DataGridView dgv, bool setting)
    {
        Type dgvType = dgv.GetType();
        PropertyInfo pi = dgvType.GetProperty("DoubleBuffered",
            BindingFlags.Instance | BindingFlags.NonPublic);
        pi.SetValue(dgv, setting, null);
    }
}

如果是使用DotNetBar的DatagridviewX控件

public static class DoubleBuffered  

{

public static void DoubleBuffered(DataGridViewX dgv,bool setting)

{

Type dgvType = dgv.GetType();

PropertyInfo pi = dgvType.GetProperty("DoubleBuffered",BindingFlags.Instance|BindingFlags.NonPublic);

pi.SetValue(dgv,setting,null);

}

}

以上是关于C#datagridview 防止闪烁的方法的主要内容,如果未能解决你的问题,请参考以下文章

C# winform控件DataGridView中动态改变其中某列的值后,发现那列单元格文字会闪烁,不知是啥原因?

DataGridView CellFormatting 事件阻止表单绘制

隐藏/禁用 DataGridView 列/行调整大小行

怎么解决Winform里dataGridView放在计时器里滚动条闪烁问题

WinForm防止界面闪烁

React suspense 防止后备微调器闪烁