|
I am trying to draw lines using below code
graphic.DrawLines(new Pen(Color.Red), pointarray);
pointarray size is 3852, I am getting overflow exception, Is there any limit to pass pointarray in DrawLines method.
Please describe...
|
|
|
|
|
Offhand, you could check if all the values are appropriate - maybe one of the values in the array are incorrect.
|
|
|
|
|
|
No, there is no limit I am aware of, and a quick test says that you can use more than 3852 points anyway:
Point[] points = new Point[4096];
public frmTesting()
{
InitializeComponent();
Random r = new Random();
for (int i = 0; i < points.Length; i++)
{
points[i] = new Point(r.Next(0, 200), r.Next(0, 200));
}
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
Pen p = Pens.Red;
e.Graphics.DrawLines(p, points);
}
Works with no problems. I would suspect the problem is in your other code.
BTW: You shouldn't create a new Pen like that - you are responsible for calling Dispose on all graphics elements you create, so you should keep a reference to it, or use a stock item as I did.
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
The only limits I know of are the size of the array you're passing. It must be less than 2GB of data and be less than Int32.MaxValue (2.147 billion) elements long.
|
|
|
|