首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当滚动时,所有者绘制ListView“涂抹”

当滚动时,所有者绘制ListView“涂抹”
EN

Stack Overflow用户
提问于 2009-05-29 00:09:43
回答 4查看 2.5K关注 0票数 0

我有一个自己画的ListView,当我滚动时,它会“抹黑”。它只影响最后显示的项目,因为它移动到列表的可见区域.

看上去:

Blah

胡扯

Blah

...have都是互相画在一起的,相距1像素。DrawItem事件中的代码为

代码语言:javascript
运行
复制
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);

我完全不知所措。感谢您的任何想法!戴夫

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-05-29 02:54:22

通过从ListView派生并设置DoubleBuffered = true,您可以为它启用双重缓冲。有一个明显的减少闪烁,特别是在Tile视图,一旦你打开双缓冲。

票数 1
EN

Stack Overflow用户

发布于 2010-01-29 22:45:39

详细地说,视图绘图在DrawSubItem(.)中完成了所有的绘图。问题是drawItem被调用为第一个项目,而DrawSubitem也被调用到相同的项.有稍微不同的界限。

票数 1
EN

Stack Overflow用户

发布于 2009-05-29 22:16:04

此外,在表单本身的属性中,可以启用DoubleBuffer。此外,您还可以使用一些命令。

更多的信息可以通过在谷歌搜索DoubleBuffer C#找到(对不起,作为一个新用户,我不能发布链接)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/923834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档