我在用 C# VS2005 .net 2.0 开发的 Windows 应用程序中使用 datagridview。
Datagridview 提供了一个业务对象列表。在开始以落幕方式在 datagridview 中显示行之前,它需要 2-3 秒的恼人延迟。当我从任何其他窗口切换回我的应用程序时,它会以相同的落幕方式开始重新绘制过程。这很烦人。请有人帮我解决这个问题!
我在用 C# VS2005 .net 2.0 开发的 Windows 应用程序中使用 datagridview。
Datagridview 提供了一个业务对象列表。在开始以落幕方式在 datagridview 中显示行之前,它需要 2-3 秒的恼人延迟。当我从任何其他窗口切换回我的应用程序时,它会以相同的落幕方式开始重新绘制过程。这很烦人。请有人帮我解决这个问题!
我不知道它为什么会起作用,但是将 DataGridView 控件设置为双缓冲绝对是一种享受。确保主机表单上的 DoubleBuffered 属性也为 false。
完成此操作后,我的网格控件从重绘变得如此缓慢(无论数据量如何),以至于您几乎可以在单元格进入时对其进行计数, - 重绘与任何其他控件一样快。
DoubleBuffered 属性在 DataGridView 上受到保护,因此您需要创建派生类并在那里设置属性,例如:
class DoubleBufferDataGrid : DataGridView
{
public DoubleBufferDataGrid()
: base()
{
this.DoubleBuffered = true;
}
}