2009-05-29 2 views
0

스크롤 할 때 "얼룩이 져야하는"ownerView를 가진 ListView가 있습니다. 이 목록의 볼 수 있습니다로 이동할 때 그것은 단지소유자 그리기 ListView를 스크롤 할 때 "번짐"

그것은처럼 보이는 ... 마지막 표시 항목에 영향을



... 모두 서로 1 픽셀 씩 위에 그려져 있습니다. DrawItem 이벤트의 코드는 형태

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

이다 나는 완전히 난처한 상황에 빠진입니다. 감사드립니다. 감사합니다. Dave

+0

문제는 버퍼링 문제가 아닙니다. –

답변

1

ListView에 대해 이중 버퍼링을 활성화하고 DoubleBuffered = true을 설정하여 ListView를 이중 버퍼링 할 수 있습니다. 더블 버퍼링을 켜면 특히 타일보기에서 깜박임이 눈에 띄게 감소합니다.

+0

이중 버퍼링 문제였습니다. ListView를 상속 한 클래스를 생성하고 생성자에서 이중 버퍼링을 수행해야했습니다. –

0

또한 int 폼의 자체 속성을 사용하면 DoubleBuffer를 사용할 수 있습니다. 또한 몇 가지 명령을 사용할 수 있습니다.

Google에서 DoubleBuffer C#을 검색하면 더 많은 정보를 찾을 수 있습니다 (미안하지만 링크를 게시 할 수없는 새로운 사용자).

0

이것은 ListView 컨트롤의 알려진 버그입니다.

1

자세히보기 드로잉은 DrawSubItem (...)에서 모든 드로잉을 수행합니다. 문제는 drawItem이 첫 번째 항목에 대해 호출되고 DrawSubitem이 동일한 항목에 대해 약간 다른 경계를 사용한다는 것입니다.

+0

그건 합리적인 것 같아요. –

관련 문제