When I am drawing line and then iterate in for loop it cause high memory leak then after several line it crashed.
private Pen ReDrawFromGrid(Pen pen)
{
for (int parseDgV = 0; parseDgV < dataGridView1.Rows.Count; parseDgV++)
{
float redrawX1;
float redrawY1;
float redrawX2;
float redrawY2;
float.TryParse(dataGridView1.Rows[parseDgV].Cells[0].Value.ToString(), out redrawX1);
float.TryParse(dataGridView1.Rows[parseDgV].Cells[1].Value.ToString(), out redrawY1);
float.TryParse(dataGridView1.Rows[parseDgV].Cells[2].Value.ToString(), out redrawX2);
float.TryParse(dataGridView1.Rows[parseDgV].Cells[3].Value.ToString(), out redrawY2);
if (dataGridView1.Rows[parseDgV].Cells[5].Value.ToString() == "Solid")
{
dashRedraw = new float[1] { 10 };
}
else if (dataGridView1.Rows[parseDgV].Cells[5].Value.ToString() == "Dash")
{
dashRedraw = new float[2] { 10, 10 };
}
else if (dataGridView1.Rows[parseDgV].Cells[5].Value.ToString() == "Dot")
{
dashRedraw = new float[2] { 3, 5 };
}
else
{
dashRedraw = new float[1] { 10 };
}
pen = new Pen(dataGridView1.Rows[parseDgV].Cells[4].Style.BackColor);
pen.DashPattern = dashRedraw;
g.DrawLine(pen, redrawX1, redrawY1, redrawX2, redrawY2);
this.Refresh();
this.axDNVideoX1.Invalidate();
}
GC.Collect();
return pen;
}
I tried to put dispose before and after in this for loop but it resulted no line drawn. How can I iterate draw line without causing memory leak?
Thanks for your help!