Pregunta

Tengo un ListView ownerdrawn que "frotis" cuando se desplazan. Sólo afecta el último elemento que se muestra a medida que avanza en el visibles de la lista ...

Parece que:

  

Bla
  bla
  Bla

... todos se han dibujado en la parte superior de uno al otro, aparte de 1 píxel. El código en el evento DrawItem es de la forma

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);

Estoy completamente perplejo. Cualquier idea agradecimiento apreciados! David

¿Fue útil?

Solución

Puede activar el doble buffer para ListView derivando de ella y el establecimiento de DoubleBuffered = true. Hay una notable reducción de parpadeo, especialmente en vista del azulejo, una vez que cumpla Doblebuffering sucesivamente.

Otros consejos

En la vista de detalle de dibujo hacer todo de su dibujo en DrawSubItem (...). El problema se DrawItem está recibiendo llamadas para el primer artículo y DrawSubitem también por el mismo artículo ... con un poco diferentes límites.

También, int propiedades propias del formulario, puede activar DoubleBuffer. Además, hay un par de comandos que puede utilizar.

Más información se puede encontrar buscando en DoubleBuffer C # en Google (lo siento, como un nuevo usuario que no puedo publicar enlaces).

Este es un error conocido en el control ListView.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top