当我滚动时,我有一个所有权的ListView“涂抹”。它仅影响最后显示的项目,因为它移动到列表中的可见区域...
看起来像:
布拉赫
布拉赫
布拉赫
...所有人都被隔开了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);
我完全难过了。 感谢任何想法! 戴夫
答案 0 :(得分:1)
您可以通过派生并设置DoubleBuffered = true
为ListView启用双缓冲。一旦你打开Double Buffering,闪烁就会明显减少,尤其是在Tile视图中。
答案 1 :(得分:1)
详细视图在DrawSubItem(...)中完成所有绘图。问题是drawItem被调用第一个项目而DrawSubitem也用于相同的项目......边界略有不同。
答案 2 :(得分:0)
另外,在表单自己的属性中,您可以启用DoubleBuffer。 另外,您可以使用几个命令。
通过在谷歌搜索DoubleBuffer C#可以找到更多信息(抱歉,作为新用户,我无法发布链接)。
答案 3 :(得分:0)
这是ListView控件中的已知错误。