我有一个自己画的ListView,当我滚动时,它会“抹黑”。它只影响最后显示的项目,因为它移动到列表的可见区域.
看上去:
Blah
胡扯
Blah
...have都是互相画在一起的,相距1像素。DrawItem事件中的代码为
Rectangle rect = new Rectangle(e.Bounds.X + mIconSize.Width,
e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
e.Graphics.DrawString(episode.ToString(), this.Font, mBlackBrush, rect);我完全不知所措。感谢您的任何想法!戴夫
发布于 2009-05-29 02:54:22
通过从ListView派生并设置DoubleBuffered = true,您可以为它启用双重缓冲。有一个明显的减少闪烁,特别是在Tile视图,一旦你打开双缓冲。
发布于 2010-01-29 22:45:39
详细地说,视图绘图在DrawSubItem(.)中完成了所有的绘图。问题是drawItem被调用为第一个项目,而DrawSubitem也被调用到相同的项.有稍微不同的界限。
发布于 2009-05-29 22:16:04
此外,在表单本身的属性中,可以启用DoubleBuffer。此外,您还可以使用一些命令。
更多的信息可以通过在谷歌搜索DoubleBuffer C#找到(对不起,作为一个新用户,我不能发布链接)。
https://stackoverflow.com/questions/923834
复制相似问题