Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 滚动时停止刷新datagridview_C#_Winforms_Scroll_Datagridview_Refresh - Fatal编程技术网

C# 滚动时停止刷新datagridview

C# 滚动时停止刷新datagridview,c#,winforms,scroll,datagridview,refresh,C#,Winforms,Scroll,Datagridview,Refresh,我在DataGridView中显示了很多结果(行和列)。当我上下或左右滚动时,datagridview会刷新,并且每次都会显示单元格。这很烦人,因为需要刷新,特别是在DataGridViewControl\u CellFormatting事件中执行某些操作时。 在dataGridView中滚动时,如何停止刷新? 我在C中使用WinForms# 这是为了在数据网格视图上启用双缓冲。这是我从你那里得到的 这是为了在数据网格视图上启用双缓冲。这是我从中得到的,我在datagridview中填充了200

我在DataGridView中显示了很多结果(行和列)。当我上下或左右滚动时,datagridview会刷新,并且每次都会显示单元格。这很烦人,因为需要刷新,特别是在
DataGridViewControl\u CellFormatting
事件中执行某些操作时。 在dataGridView中滚动时,如何停止刷新? 我在C中使用WinForms#

这是为了在数据网格视图上启用双缓冲。这是我从你那里得到的


这是为了在数据网格视图上启用双缓冲。这是我从

中得到的,我在datagridview中填充了2000个项目来为您测试这一点,但复制您的问题时遇到了问题。我想你是说它在闪烁?你试过dubblebuffered吗?我已经发布了一个答案,包括这个。是的,这就是我的意思。每次我滚动到datagridview时,网格都会闪烁。我在datagridview中填充了2000个项目来为您测试这一点,但我很难重现您的问题。我想你是说它在闪烁?你试过dubblebuffered吗?我已经发布了一个答案,包括这个。是的,这就是我的意思。每次我滚动到datagridview时,网格都在闪烁,这是一个很好的发现,尽管我同意cody的观点:您发布的方法使用反射来更改datagridview控件上的非公共属性。这是一个可以接受的解决方案,但继承现有DataGridView控件并使用“DoubleBuffered”样式集创建自己的自定义控件可能更干净。很好的发现,尽管我同意cody的说法:您发布的方法使用反射来更改DataGridView控件上的非公共属性。这是一个可以接受的解决方案,但继承现有DataGridView控件并使用“DoubleBuffered”样式集创建自己的自定义控件可能更干净。
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);
}