У меня есть PictureBox, он служит холстом.A List<RectangleObj>
размер массива aprox 8000.
"RectangleObj" - это простой класс прямоугольника, после вызова метода Draw(Graphic g)
он будет рисовать
- границу с
g.DrawRectangle(...)
и, - заполните прямоугольник альфа-прозрачностью, используя
g.FillRectangle(...)
В приложении Form.cs я использую pictureBox1_Paint(...)
для зацикливания массива RectangleObj
и вызовите метод Draw
этого класса.
Вот так.
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
for (int i = 0; i < RectList.Count(); i++) //List<RectangleObj> count = 8000
RectList[i].Draw(e.Graphics);
}
Каждый раз, когда мышь нажимает на RectangleObj
и перетаскивает изменение его местоположения (событие перемещения мыши), вызывается событие рисования.так как массив имеет большое количество, событие рисования не имеет достаточно времени, чтобы закончить цикл и затопляется движениями мыши.так что это делает событие Paint медленным.
Может кто-нибудь посоветовать мне, как оптимизировать эту процедуру.