问题描述
我继承了listview然后对item进行重画,可是在显示的时候,发现图片多的时候,明显的闪烁情况好像每画好一行,都会把之前的图标重新刷新一次现在我的图标是一个个显示出来的,就是会有闪烁请教高手又办法不闪烁吗?
解决方案
解决方案二:
这是肯定的,你要避免不闪烁,就得利用双缓冲,你可以去网上查查.闪烁是因为它在不断画,如果图片少,基本不影响,但是图片一多,就很明显了。而双缓冲,则是让你先把画画在内存中,也就是把你要画的东西,整个画在内存中,然后直接将画完的东西一次性贴上去,这样就可以避免闪烁。我说的可能不是很清楚,希望对你有帮助
解决方案三:
谢谢我先查查双缓冲,就是不知道还能达到一个个显示的效果吗,像XP一样
解决方案四:
双缓冲是必须的,自己重绘的时候DoubleBuffered设置为true吧,dotnet会自己帮你处理双缓冲的,貌似默认值就是开启的还要注意的是只选择需要重画的部分重绘,没必要整个控件都重绘
解决方案五:
学习了
解决方案六:
SetStyle(ControlStyles.UserPaint,true);SetStyle(ControlStyles.AllPaintingInWmPaint,true);SetStyle(ControlStyles.DoubleBuffer,true);放到PAINT事件中。进行双缓冲试试
时间: 2024-12-10 19:03:59