Дело в том, что вы должны подумать о том, чтобы где-то хранить свои данные чертежа. Как уже говорилось, буферное растровое изображение является решением. Однако, если вам не нужно много рисовать, иногда проще и лучше сохранить данные чертежа в переменной или массиве и перерисовать все в событии OnPaint.
Предположим, вы получили некоторые точечные данные, которые должны быть добавлены к графику. Ель всего, что вы создаете пункт Список:
List<Point> points = new List<Point>();
Затем каждый раз, когда вы получаете новую точку, вы добавляете ее в список и обновляете форму:
points.Add(newPoint);
this.Refresh();
В событии OnPaint введите следующий код:
private void Form_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawLines(Pens.Red, points);
}
Это работает довольно быстро, до 100 000 точек и использует гораздо меньше памяти, чем решение с битовой картой буфера. Но вы должны решить, какой способ использовать в зависимости от сложности рисунка.