Владелец Draw ListView «размазывает» при прокрутке - PullRequest
0 голосов
/ 29 мая 2009

У меня есть 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

Ответы [ 4 ]

1 голос
/ 30 января 2010

В детальном представлении рисования делайте все свои рисунки в DrawSubItem (...). Проблема в том, что drawItem вызывается для первого элемента, а DrawSubitem также для того же элемента ... с немного разными границами.

1 голос
/ 29 мая 2009

Вы можете включить двойную буферизацию для ListView, выведя из него и установив DoubleBuffered = true. Заметное мерцание заметно уменьшается, особенно в режиме Tile, когда вы включаете Double Buffering.

0 голосов
/ 18 сентября 2009

Это известная ошибка в элементе управления ListView.

0 голосов
/ 30 мая 2009

также, в собственных свойствах формы, вы можете включить DoubleBuffer. кроме того, вы можете использовать несколько команд.

Дополнительную информацию можно найти, выполнив поиск DoubleBuffer C # в Google (извините, как новый пользователь я не могу публиковать ссылки).

...