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