我有一个 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 为真,否则不会发生这种情况)。
这是一个非常放大的例子。
如果有人有修复或知道它为什么会这样做,我很想知道!