我在使用C#VS2005 .net 2.0开发的Windows应用程序中使用datagridview。
Datagridview提供了一个业务对象列表。在以幕后方式开始在datagridview中显示行之前,需要2-3秒的烦人延迟。当我从任何其他窗口切换回我的应用程序时,它以相同的落幕方式开始重绘过程。 这很烦人。有人帮我解决这个问题!
答案 0 :(得分:1)
我不知道它为什么会起作用,但将DataGridView控件设置为double-buffered是一种绝对的享受。确保host-form上的DoubleBuffered属性也为false。
执行此操作后,我的网格控件从重绘速度变得非常缓慢(无论数据量如何),您可以在进入时几乎对单元格进行计数, - 重绘速度与任何其他控件一样快。
DoubleBuffered属性在DataGridView上受到保护,因此您需要创建派生类并在其中设置属性,例如:
class DoubleBufferDataGrid : DataGridView
{
public DoubleBufferDataGrid()
: base()
{
this.DoubleBuffered = true;
}
}
答案 1 :(得分:0)
我遇到了同样的问题。 GridView未绑定到数据源。我自己正在构建GridView。当我调整大小(放大)或垂直滚动时,我得到相同的落幕效果。这很糟糕。如果我有100或100000行,效果是一样的。如果我将DoubleBuffered设置为true或false,它也是一样的。
我一直在网上寻找可能发生的任何线索,到目前为止还没有。开始这个帖子的人没有跟进,或者我们现在可能有答案,这太糟糕了。