2015-06-05 23 views
-1

Я делаю внешнюю карту для видеоигры. Поэтому я рисую прямоугольник внутри коробки с картинками. Я перерисовываю прямоугольник каждые 1/10 секунды, используя таймер. Теперь мой вопрос: как удалить старый прямоугольник, прежде чем рисовать новый?удалить заполненный прямоугольник C#

+0

Это поможет увидеть код, который у вас есть – TaW

ответ

1

Вы должны сделать свой рисунок в качестве обработчика событий для Paint события ваших PictureBox «ы, с помощью Graphics объекта передается через PaintEventArgs. Затем очистка и перекраска фона PictureBox будут выполняться для вас каждый раз, когда PictureBox перекрашивает его содержимое. Затем, вместо того, чтобы называть ваш метод ничьей или что-нибудь каждые 1/10 секунды, вы можете просто позвонить yourPictureBox.Invalidate() каждые 1/10 секунды.

+0

Не могли бы вы дать мне больше информации о том, как это сделать? –

+0

@ darude_cod3r Переместите свой код чертежа внутри 'PictureBox_OnPaint()' –

+0

Вы можете добавить обработчик события 'Paint' через конструктор форм. Выберите «PictureBox», затем в окне «Свойства» нажмите кнопку «События» (выглядит как молния). Прокрутите вниз до события «Paint». Двойной клик. Это добавит метод обработчика событий к вашему коду и приведет вас к этой точке файла .cs. Переместите свой код чертежа в этот метод, но используйте 'e.Graphics', а не объект« Graphics », который вы в противном случае создали. Если вам нужно больше деталей, это время Google. – adv12

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