1

我在用 C# VS2005 .net 2.0 开发的 Windows 应用程序中使用 datagridview。

Datagridview 提供了一个业务对象列表。在开始以落幕方式在 datagridview 中显示行之前,它需要 2-3 秒的恼人延迟。当我从任何其他窗口切换回我的应用程序时,它会以相同的落幕方式开始重新绘制过程。这很烦人。请有人帮我解决这个问题!

4

1 回答 1

1

我不知道它为什么会起作用,但是将 DataGridView 控件设置为双缓冲绝对是一种享受。确保主机表单上的 DoubleBuffered 属性也为 false。

完成此操作后,我的网格控件从重绘变得如此缓慢(无论数据量如何),以至于您几乎可以在单元格进入时对其进行计数, - 重绘与任何其他控件一样快。

DoubleBuffered 属性在 DataGridView 上受到保护,因此您需要创建派生类并在那里设置属性,例如:

class DoubleBufferDataGrid : DataGridView
{
    public DoubleBufferDataGrid()
        : base()
    {
        this.DoubleBuffered = true;
    }
}
于 2011-02-22T13:05:56.533 回答