2012-04-27 2 views
2

Я пытаюсь удвоить буфер элемента панели winforms. Я использую панель для рисования фигур. Прямо сейчас у меня есть что-то вроде:Вопросы панели winforms Doublebuffer

class BufferPanel : Panel { 
    public BufferPanel() { 
     this.DoubleBuffer = true; 
    } 
} 

Движение мышки вызывает панель Обновить(). Некоторые формы рисуются, когда запускается Paint. Здесь у меня проблема. Эти формы рисуются только в течение секунды после того, как движение мыши запускает Refresh, а затем полностью исчезает. Это похоже на то, что они нарисованы только на одном буфере или что-то в этом роде. Похоже, это происходит только с Paint. Например, я могу скопировать/вставить фигуры в метод перемещения мыши, и все будет работать нормально. Любые мысли о том, почему?

+1

Похоже, вы не используете объект 'e.Graphics' из-за события' Paint' или 'OnPaint'. Избегайте использования 'CreateGraphics'. Попробуйте опубликовать свой код рисования. – LarsTech

+0

Спасибо, что сделал трюк! – user1222728

ответ

0

Сообщение от комментариев:

Похоже, вы не используете e.Graphics объекта из события Paint или OnPaint переопределения. Избегайте использования CreateGraphics.

Смежные вопросы