【发布时间】:2012-09-28 10:51:33
【问题描述】:
我有一个 System.Windows.Forms.ListView 包含许多项目。 它闪烁得令人无法忍受(似乎经常发生这种情况),所以经过一番搜索后,我决定在“ListViewLessFlicker”类中做这两件事。
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.Opaque, true);
DoubleBuffering 尽管在这些主题中最常作为解决方案给出,但效果并不大,但将样式 opaque 设置为 true 会大大减少闪烁。
http://www.virtualdub.org/blog/pivot/entry.php?id=273
但是它有一个副作用,我似乎无法找到解决方法。 当我将鼠标悬停在 ListView 中的某个项目上时,它现在会使文本变为粗体并且 非常 模糊(除非 opaque 为真,否则不会发生这种情况)。
这是一个非常放大的例子。
如果有人有修复或知道它为什么会这样做,我很想知道!
【问题讨论】:
-
闪烁是什么时候发生的?什么时候添加项目?
-
一个建议 - 不是答案 - 更新您的图形驱动程序。
-
在刷新列表视图时会发生闪烁,这必须经常进行,即在 listview1.endUpdate() 上