Drawing Lines in Autoscroll form c#









up vote
1
down vote

favorite












I just want to transform the points when scrolling. I already use the e.Graphics.TranslateTransform() but it only works on drawing. The point of the line wont change the offset.



 private void Form1_Scroll(object sender, ScrollEventArgs e)

Point scrollOffset = this.AutoScrollPosition;

for (int lk = 0; lk < Pt1.Count; lk++)

Pt1[lk] = new Point(Pt1[lk].X + scrollOffset.X, Pt1[lk].Y + scrollOffset.Y);
Pt2[lk] = new Point(Pt2[lk].X + scrollOffset.X, Pt2[lk].Y + scrollOffset.Y);

this.Invalidate();
this.Update();
this.Refresh();

private void Form1_Paint(object sender, PaintEventArgs e)

Point scrollOffset = this.AutoScrollPosition;
e.Graphics.TranslateTransform(scrollOffset.X, scrollOffset.Y);
e.Graphics.Clear(this.BackColor);
e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
Pen greenPen = new Pen(Color.Green,1);
greenPen.DashPattern = new float 5.0F, 5.0F, 5.0F, 5.0F ;
Pen red = new Pen(Color.Red,1);
red.DashPattern = new float 5.0F, 5.0F, 5.0F, 5.0F ;
Pen Grey = new Pen(Color.Gray,1);
Grey.DashPattern = new float 5.0F, 5.0F, 5.0F, 5.0F ;
#region "Draw Line using cursor"
Pen SolidGreen = new Pen(Color.Green, 1);
Pen SolidGrey = new Pen(Color.Gray, 1);
Pen Red = new Pen(Color.Red, 1);

for (int pl = 0; pl < Pt1j.Count; pl++)


PointF pointsj = new PointF

new PointF(Pt2j[pl].X, Pt2j[pl].Y),
new PointF(Pt3j[pl].X , Pt3j[pl].Y),
new PointF(Pt4j[pl].X , Pt4j[pl].Y),
new PointF(Pt5j[pl].X , Pt5j[pl].Y),
;
e.Graphics.DrawLine(Pens.Green, Pt1j[pl].X , Pt1j[pl].Y, Pt2j[pl].X, Pt2j[pl].Y);
e.Graphics.DrawCurve(Pens.Green, pointsj);
e.Graphics.DrawLine(Pens.Green, Pt5j[pl].X , Pt5j[pl].Y, Pt6j[pl].X, Pt6j[pl].Y);

for (int pl = 0; pl < Pt1DashedGray.Count; pl++)

e.Graphics.DrawLine(Grey, Pt1DashedGray[pl], Pt2DashedGray[pl]);
PointF pointsdhg = new PointF

new PointF(Pt2DashedGray[pl].X, Pt2DashedGray[pl].Y),
new PointF(Pt3DashedGray[pl].X, Pt3DashedGray[pl].Y),
new PointF(Pt4DashedGray[pl].X, Pt4DashedGray[pl].Y),
new PointF(Pt5DashedGray[pl].X, Pt5DashedGray[pl].Y),
;
e.Graphics.DrawCurve(Grey, pointsdhg);
e.Graphics.DrawLine(Grey, Pt5DashedGray[pl], Pt6DashedGray[pl]);

for (int pl = 0; pl < Pt1SolidGray.Count; pl++)

e.Graphics.DrawLine(SolidGrey, Pt1SolidGray[pl], Pt2SolidGray[pl]);
PointF pointsdhg = new PointF

new PointF(Pt2SolidGray[pl].X, Pt2SolidGray[pl].Y),
new PointF(Pt3SolidGray[pl].X, Pt3SolidGray[pl].Y),
new PointF(Pt4SolidGray[pl].X, Pt4SolidGray[pl].Y),
new PointF(Pt5SolidGray[pl].X, Pt5SolidGray[pl].Y),
;
e.Graphics.DrawCurve(SolidGrey, pointsdhg);
e.Graphics.DrawLine(SolidGrey, Pt5SolidGray[pl], Pt6SolidGray[pl]);




for (int pl = 0; pl < Pt1DashGreen.Count; pl++)

e.Graphics.DrawLine(greenPen, Pt1DashGreen[pl], Pt2DashGreen[pl]);
PointF pointsdhg = new PointF

new PointF(Pt2DashGreen[pl].X, Pt2DashGreen[pl].Y),
new PointF(Pt3DashGreen[pl].X, Pt3DashGreen[pl].Y),
new PointF(Pt4DashGreen[pl].X, Pt4DashGreen[pl].Y),
new PointF(Pt5DashGreen[pl].X, Pt5DashGreen[pl].Y),
;
e.Graphics.DrawCurve(greenPen, pointsdhg);
e.Graphics.DrawLine(greenPen, Pt5DashGreen[pl], Pt6DashGreen[pl]);


for (int i = 0; i < Pt1.Count; i++)

e.Graphics.DrawLine(SolidGreen, Pt1[i], Pt2[i]);

for (int l = 0; l < DashedGreen1.Count; l++)

e.Graphics.DrawLine(greenPen, DashedGreen1[l], DashedGreen2[l]);


for (int k = 0; k < SolidGrey1.Count; k++)

e.Graphics.DrawLine(SolidGrey, SolidGrey1[k], SolidGrey2[k]);

for (int j = 0; j < DashedGrey1.Count; j++)

e.Graphics.DrawLine(Grey, DashedGrey1[j], DashedGrey2[j]);

if (IsDrawing)

e.Graphics.DrawLine(Red, NewPt1.X, NewPt1.Y, NewPt2.X, NewPt2.Y);

if (Draw_Dashed_Green)

e.Graphics.DrawLine(red, DashedGreenPT1, DashedGreenPT2);

if (Draw_Solid_Grey)

e.Graphics.DrawLine(Red, SolidGreyPT1, SolidGreyPT2);

if (Draw_dashed_Grey)

e.Graphics.DrawLine(red, DashedGreyPT1, DashedGreyPT2);




Need Help
Here is my code so far.
BDW, The point of the line is stored in the list from.
The Drawn lines in Paint event also include the line jumpers which has 6 points on it to make a jumps.



So the only problem is I would like to change the Points of the lines as I use the scroll bar.
Thanks for answering my question.










share|improve this question























  • Can you explain what is the effect that you looking for? Are you trying to move the lines position on the surface using the Scrollbars? Or keep them steady? The AutoScrollPosition reports negative values. (Btw, you just need Invalidate())
    – Jimi
    yesterday










  • Uhmmm ... I would like to move the lines position when using the scrollbar. I already use Invalidate() and I put the e.Graphics.TranslateTransform() in the paint event and it works. But the only problem is the point didnt move , only the drawn lines.
    – jayromel lawas
    yesterday










  • Then post the Paint event code. As it is, this is very uncleary to me what you're trying to achieve. Also because, as I said before AutoScrollPosition gives negative values. Then, I already use Invalidate(). I meant you need Invalidate() alone. Adding Update() and Refresh() causes a second repaint for each Scroll() event change.
    – Jimi
    yesterday










  • private void Form1_Paint(object sender, PaintEventArgs e) { Point scrollOffset = this.AutoScrollPosition; e.Graphics.TranslateTransform(scrollOffset.X, scrollOffset.Y); e.Graphics.Clear(this.BackColor);
    – jayromel lawas
    23 hours ago










  • Nope, you need to Edit your question, adding any code snippet or description that can further explain your case. Don't insert code in comments.
    – Jimi
    23 hours ago














up vote
1
down vote

favorite












I just want to transform the points when scrolling. I already use the e.Graphics.TranslateTransform() but it only works on drawing. The point of the line wont change the offset.



 private void Form1_Scroll(object sender, ScrollEventArgs e)

Point scrollOffset = this.AutoScrollPosition;

for (int lk = 0; lk < Pt1.Count; lk++)

Pt1[lk] = new Point(Pt1[lk].X + scrollOffset.X, Pt1[lk].Y + scrollOffset.Y);
Pt2[lk] = new Point(Pt2[lk].X + scrollOffset.X, Pt2[lk].Y + scrollOffset.Y);

this.Invalidate();
this.Update();
this.Refresh();

private void Form1_Paint(object sender, PaintEventArgs e)

Point scrollOffset = this.AutoScrollPosition;
e.Graphics.TranslateTransform(scrollOffset.X, scrollOffset.Y);
e.Graphics.Clear(this.BackColor);
e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
Pen greenPen = new Pen(Color.Green,1);
greenPen.DashPattern = new float 5.0F, 5.0F, 5.0F, 5.0F ;
Pen red = new Pen(Color.Red,1);
red.DashPattern = new float 5.0F, 5.0F, 5.0F, 5.0F ;
Pen Grey = new Pen(Color.Gray,1);
Grey.DashPattern = new float 5.0F, 5.0F, 5.0F, 5.0F ;
#region "Draw Line using cursor"
Pen SolidGreen = new Pen(Color.Green, 1);
Pen SolidGrey = new Pen(Color.Gray, 1);
Pen Red = new Pen(Color.Red, 1);

for (int pl = 0; pl < Pt1j.Count; pl++)


PointF pointsj = new PointF

new PointF(Pt2j[pl].X, Pt2j[pl].Y),
new PointF(Pt3j[pl].X , Pt3j[pl].Y),
new PointF(Pt4j[pl].X , Pt4j[pl].Y),
new PointF(Pt5j[pl].X , Pt5j[pl].Y),
;
e.Graphics.DrawLine(Pens.Green, Pt1j[pl].X , Pt1j[pl].Y, Pt2j[pl].X, Pt2j[pl].Y);
e.Graphics.DrawCurve(Pens.Green, pointsj);
e.Graphics.DrawLine(Pens.Green, Pt5j[pl].X , Pt5j[pl].Y, Pt6j[pl].X, Pt6j[pl].Y);

for (int pl = 0; pl < Pt1DashedGray.Count; pl++)

e.Graphics.DrawLine(Grey, Pt1DashedGray[pl], Pt2DashedGray[pl]);
PointF pointsdhg = new PointF

new PointF(Pt2DashedGray[pl].X, Pt2DashedGray[pl].Y),
new PointF(Pt3DashedGray[pl].X, Pt3DashedGray[pl].Y),
new PointF(Pt4DashedGray[pl].X, Pt4DashedGray[pl].Y),
new PointF(Pt5DashedGray[pl].X, Pt5DashedGray[pl].Y),
;
e.Graphics.DrawCurve(Grey, pointsdhg);
e.Graphics.DrawLine(Grey, Pt5DashedGray[pl], Pt6DashedGray[pl]);

for (int pl = 0; pl < Pt1SolidGray.Count; pl++)

e.Graphics.DrawLine(SolidGrey, Pt1SolidGray[pl], Pt2SolidGray[pl]);
PointF pointsdhg = new PointF

new PointF(Pt2SolidGray[pl].X, Pt2SolidGray[pl].Y),
new PointF(Pt3SolidGray[pl].X, Pt3SolidGray[pl].Y),
new PointF(Pt4SolidGray[pl].X, Pt4SolidGray[pl].Y),
new PointF(Pt5SolidGray[pl].X, Pt5SolidGray[pl].Y),
;
e.Graphics.DrawCurve(SolidGrey, pointsdhg);
e.Graphics.DrawLine(SolidGrey, Pt5SolidGray[pl], Pt6SolidGray[pl]);




for (int pl = 0; pl < Pt1DashGreen.Count; pl++)

e.Graphics.DrawLine(greenPen, Pt1DashGreen[pl], Pt2DashGreen[pl]);
PointF pointsdhg = new PointF

new PointF(Pt2DashGreen[pl].X, Pt2DashGreen[pl].Y),
new PointF(Pt3DashGreen[pl].X, Pt3DashGreen[pl].Y),
new PointF(Pt4DashGreen[pl].X, Pt4DashGreen[pl].Y),
new PointF(Pt5DashGreen[pl].X, Pt5DashGreen[pl].Y),
;
e.Graphics.DrawCurve(greenPen, pointsdhg);
e.Graphics.DrawLine(greenPen, Pt5DashGreen[pl], Pt6DashGreen[pl]);


for (int i = 0; i < Pt1.Count; i++)

e.Graphics.DrawLine(SolidGreen, Pt1[i], Pt2[i]);

for (int l = 0; l < DashedGreen1.Count; l++)

e.Graphics.DrawLine(greenPen, DashedGreen1[l], DashedGreen2[l]);


for (int k = 0; k < SolidGrey1.Count; k++)

e.Graphics.DrawLine(SolidGrey, SolidGrey1[k], SolidGrey2[k]);

for (int j = 0; j < DashedGrey1.Count; j++)

e.Graphics.DrawLine(Grey, DashedGrey1[j], DashedGrey2[j]);

if (IsDrawing)

e.Graphics.DrawLine(Red, NewPt1.X, NewPt1.Y, NewPt2.X, NewPt2.Y);

if (Draw_Dashed_Green)

e.Graphics.DrawLine(red, DashedGreenPT1, DashedGreenPT2);

if (Draw_Solid_Grey)

e.Graphics.DrawLine(Red, SolidGreyPT1, SolidGreyPT2);

if (Draw_dashed_Grey)

e.Graphics.DrawLine(red, DashedGreyPT1, DashedGreyPT2);




Need Help
Here is my code so far.
BDW, The point of the line is stored in the list from.
The Drawn lines in Paint event also include the line jumpers which has 6 points on it to make a jumps.



So the only problem is I would like to change the Points of the lines as I use the scroll bar.
Thanks for answering my question.










share|improve this question























  • Can you explain what is the effect that you looking for? Are you trying to move the lines position on the surface using the Scrollbars? Or keep them steady? The AutoScrollPosition reports negative values. (Btw, you just need Invalidate())
    – Jimi
    yesterday










  • Uhmmm ... I would like to move the lines position when using the scrollbar. I already use Invalidate() and I put the e.Graphics.TranslateTransform() in the paint event and it works. But the only problem is the point didnt move , only the drawn lines.
    – jayromel lawas
    yesterday










  • Then post the Paint event code. As it is, this is very uncleary to me what you're trying to achieve. Also because, as I said before AutoScrollPosition gives negative values. Then, I already use Invalidate(). I meant you need Invalidate() alone. Adding Update() and Refresh() causes a second repaint for each Scroll() event change.
    – Jimi
    yesterday










  • private void Form1_Paint(object sender, PaintEventArgs e) { Point scrollOffset = this.AutoScrollPosition; e.Graphics.TranslateTransform(scrollOffset.X, scrollOffset.Y); e.Graphics.Clear(this.BackColor);
    – jayromel lawas
    23 hours ago










  • Nope, you need to Edit your question, adding any code snippet or description that can further explain your case. Don't insert code in comments.
    – Jimi
    23 hours ago












up vote
1
down vote

favorite









up vote
1
down vote

favorite











I just want to transform the points when scrolling. I already use the e.Graphics.TranslateTransform() but it only works on drawing. The point of the line wont change the offset.



 private void Form1_Scroll(object sender, ScrollEventArgs e)

Point scrollOffset = this.AutoScrollPosition;

for (int lk = 0; lk < Pt1.Count; lk++)

Pt1[lk] = new Point(Pt1[lk].X + scrollOffset.X, Pt1[lk].Y + scrollOffset.Y);
Pt2[lk] = new Point(Pt2[lk].X + scrollOffset.X, Pt2[lk].Y + scrollOffset.Y);

this.Invalidate();
this.Update();
this.Refresh();

private void Form1_Paint(object sender, PaintEventArgs e)

Point scrollOffset = this.AutoScrollPosition;
e.Graphics.TranslateTransform(scrollOffset.X, scrollOffset.Y);
e.Graphics.Clear(this.BackColor);
e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
Pen greenPen = new Pen(Color.Green,1);
greenPen.DashPattern = new float 5.0F, 5.0F, 5.0F, 5.0F ;
Pen red = new Pen(Color.Red,1);
red.DashPattern = new float 5.0F, 5.0F, 5.0F, 5.0F ;
Pen Grey = new Pen(Color.Gray,1);
Grey.DashPattern = new float 5.0F, 5.0F, 5.0F, 5.0F ;
#region "Draw Line using cursor"
Pen SolidGreen = new Pen(Color.Green, 1);
Pen SolidGrey = new Pen(Color.Gray, 1);
Pen Red = new Pen(Color.Red, 1);

for (int pl = 0; pl < Pt1j.Count; pl++)


PointF pointsj = new PointF

new PointF(Pt2j[pl].X, Pt2j[pl].Y),
new PointF(Pt3j[pl].X , Pt3j[pl].Y),
new PointF(Pt4j[pl].X , Pt4j[pl].Y),
new PointF(Pt5j[pl].X , Pt5j[pl].Y),
;
e.Graphics.DrawLine(Pens.Green, Pt1j[pl].X , Pt1j[pl].Y, Pt2j[pl].X, Pt2j[pl].Y);
e.Graphics.DrawCurve(Pens.Green, pointsj);
e.Graphics.DrawLine(Pens.Green, Pt5j[pl].X , Pt5j[pl].Y, Pt6j[pl].X, Pt6j[pl].Y);

for (int pl = 0; pl < Pt1DashedGray.Count; pl++)

e.Graphics.DrawLine(Grey, Pt1DashedGray[pl], Pt2DashedGray[pl]);
PointF pointsdhg = new PointF

new PointF(Pt2DashedGray[pl].X, Pt2DashedGray[pl].Y),
new PointF(Pt3DashedGray[pl].X, Pt3DashedGray[pl].Y),
new PointF(Pt4DashedGray[pl].X, Pt4DashedGray[pl].Y),
new PointF(Pt5DashedGray[pl].X, Pt5DashedGray[pl].Y),
;
e.Graphics.DrawCurve(Grey, pointsdhg);
e.Graphics.DrawLine(Grey, Pt5DashedGray[pl], Pt6DashedGray[pl]);

for (int pl = 0; pl < Pt1SolidGray.Count; pl++)

e.Graphics.DrawLine(SolidGrey, Pt1SolidGray[pl], Pt2SolidGray[pl]);
PointF pointsdhg = new PointF

new PointF(Pt2SolidGray[pl].X, Pt2SolidGray[pl].Y),
new PointF(Pt3SolidGray[pl].X, Pt3SolidGray[pl].Y),
new PointF(Pt4SolidGray[pl].X, Pt4SolidGray[pl].Y),
new PointF(Pt5SolidGray[pl].X, Pt5SolidGray[pl].Y),
;
e.Graphics.DrawCurve(SolidGrey, pointsdhg);
e.Graphics.DrawLine(SolidGrey, Pt5SolidGray[pl], Pt6SolidGray[pl]);




for (int pl = 0; pl < Pt1DashGreen.Count; pl++)

e.Graphics.DrawLine(greenPen, Pt1DashGreen[pl], Pt2DashGreen[pl]);
PointF pointsdhg = new PointF

new PointF(Pt2DashGreen[pl].X, Pt2DashGreen[pl].Y),
new PointF(Pt3DashGreen[pl].X, Pt3DashGreen[pl].Y),
new PointF(Pt4DashGreen[pl].X, Pt4DashGreen[pl].Y),
new PointF(Pt5DashGreen[pl].X, Pt5DashGreen[pl].Y),
;
e.Graphics.DrawCurve(greenPen, pointsdhg);
e.Graphics.DrawLine(greenPen, Pt5DashGreen[pl], Pt6DashGreen[pl]);


for (int i = 0; i < Pt1.Count; i++)

e.Graphics.DrawLine(SolidGreen, Pt1[i], Pt2[i]);

for (int l = 0; l < DashedGreen1.Count; l++)

e.Graphics.DrawLine(greenPen, DashedGreen1[l], DashedGreen2[l]);


for (int k = 0; k < SolidGrey1.Count; k++)

e.Graphics.DrawLine(SolidGrey, SolidGrey1[k], SolidGrey2[k]);

for (int j = 0; j < DashedGrey1.Count; j++)

e.Graphics.DrawLine(Grey, DashedGrey1[j], DashedGrey2[j]);

if (IsDrawing)

e.Graphics.DrawLine(Red, NewPt1.X, NewPt1.Y, NewPt2.X, NewPt2.Y);

if (Draw_Dashed_Green)

e.Graphics.DrawLine(red, DashedGreenPT1, DashedGreenPT2);

if (Draw_Solid_Grey)

e.Graphics.DrawLine(Red, SolidGreyPT1, SolidGreyPT2);

if (Draw_dashed_Grey)

e.Graphics.DrawLine(red, DashedGreyPT1, DashedGreyPT2);




Need Help
Here is my code so far.
BDW, The point of the line is stored in the list from.
The Drawn lines in Paint event also include the line jumpers which has 6 points on it to make a jumps.



So the only problem is I would like to change the Points of the lines as I use the scroll bar.
Thanks for answering my question.










share|improve this question















I just want to transform the points when scrolling. I already use the e.Graphics.TranslateTransform() but it only works on drawing. The point of the line wont change the offset.



 private void Form1_Scroll(object sender, ScrollEventArgs e)

Point scrollOffset = this.AutoScrollPosition;

for (int lk = 0; lk < Pt1.Count; lk++)

Pt1[lk] = new Point(Pt1[lk].X + scrollOffset.X, Pt1[lk].Y + scrollOffset.Y);
Pt2[lk] = new Point(Pt2[lk].X + scrollOffset.X, Pt2[lk].Y + scrollOffset.Y);

this.Invalidate();
this.Update();
this.Refresh();

private void Form1_Paint(object sender, PaintEventArgs e)

Point scrollOffset = this.AutoScrollPosition;
e.Graphics.TranslateTransform(scrollOffset.X, scrollOffset.Y);
e.Graphics.Clear(this.BackColor);
e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
Pen greenPen = new Pen(Color.Green,1);
greenPen.DashPattern = new float 5.0F, 5.0F, 5.0F, 5.0F ;
Pen red = new Pen(Color.Red,1);
red.DashPattern = new float 5.0F, 5.0F, 5.0F, 5.0F ;
Pen Grey = new Pen(Color.Gray,1);
Grey.DashPattern = new float 5.0F, 5.0F, 5.0F, 5.0F ;
#region "Draw Line using cursor"
Pen SolidGreen = new Pen(Color.Green, 1);
Pen SolidGrey = new Pen(Color.Gray, 1);
Pen Red = new Pen(Color.Red, 1);

for (int pl = 0; pl < Pt1j.Count; pl++)


PointF pointsj = new PointF

new PointF(Pt2j[pl].X, Pt2j[pl].Y),
new PointF(Pt3j[pl].X , Pt3j[pl].Y),
new PointF(Pt4j[pl].X , Pt4j[pl].Y),
new PointF(Pt5j[pl].X , Pt5j[pl].Y),
;
e.Graphics.DrawLine(Pens.Green, Pt1j[pl].X , Pt1j[pl].Y, Pt2j[pl].X, Pt2j[pl].Y);
e.Graphics.DrawCurve(Pens.Green, pointsj);
e.Graphics.DrawLine(Pens.Green, Pt5j[pl].X , Pt5j[pl].Y, Pt6j[pl].X, Pt6j[pl].Y);

for (int pl = 0; pl < Pt1DashedGray.Count; pl++)

e.Graphics.DrawLine(Grey, Pt1DashedGray[pl], Pt2DashedGray[pl]);
PointF pointsdhg = new PointF

new PointF(Pt2DashedGray[pl].X, Pt2DashedGray[pl].Y),
new PointF(Pt3DashedGray[pl].X, Pt3DashedGray[pl].Y),
new PointF(Pt4DashedGray[pl].X, Pt4DashedGray[pl].Y),
new PointF(Pt5DashedGray[pl].X, Pt5DashedGray[pl].Y),
;
e.Graphics.DrawCurve(Grey, pointsdhg);
e.Graphics.DrawLine(Grey, Pt5DashedGray[pl], Pt6DashedGray[pl]);

for (int pl = 0; pl < Pt1SolidGray.Count; pl++)

e.Graphics.DrawLine(SolidGrey, Pt1SolidGray[pl], Pt2SolidGray[pl]);
PointF pointsdhg = new PointF

new PointF(Pt2SolidGray[pl].X, Pt2SolidGray[pl].Y),
new PointF(Pt3SolidGray[pl].X, Pt3SolidGray[pl].Y),
new PointF(Pt4SolidGray[pl].X, Pt4SolidGray[pl].Y),
new PointF(Pt5SolidGray[pl].X, Pt5SolidGray[pl].Y),
;
e.Graphics.DrawCurve(SolidGrey, pointsdhg);
e.Graphics.DrawLine(SolidGrey, Pt5SolidGray[pl], Pt6SolidGray[pl]);




for (int pl = 0; pl < Pt1DashGreen.Count; pl++)

e.Graphics.DrawLine(greenPen, Pt1DashGreen[pl], Pt2DashGreen[pl]);
PointF pointsdhg = new PointF

new PointF(Pt2DashGreen[pl].X, Pt2DashGreen[pl].Y),
new PointF(Pt3DashGreen[pl].X, Pt3DashGreen[pl].Y),
new PointF(Pt4DashGreen[pl].X, Pt4DashGreen[pl].Y),
new PointF(Pt5DashGreen[pl].X, Pt5DashGreen[pl].Y),
;
e.Graphics.DrawCurve(greenPen, pointsdhg);
e.Graphics.DrawLine(greenPen, Pt5DashGreen[pl], Pt6DashGreen[pl]);


for (int i = 0; i < Pt1.Count; i++)

e.Graphics.DrawLine(SolidGreen, Pt1[i], Pt2[i]);

for (int l = 0; l < DashedGreen1.Count; l++)

e.Graphics.DrawLine(greenPen, DashedGreen1[l], DashedGreen2[l]);


for (int k = 0; k < SolidGrey1.Count; k++)

e.Graphics.DrawLine(SolidGrey, SolidGrey1[k], SolidGrey2[k]);

for (int j = 0; j < DashedGrey1.Count; j++)

e.Graphics.DrawLine(Grey, DashedGrey1[j], DashedGrey2[j]);

if (IsDrawing)

e.Graphics.DrawLine(Red, NewPt1.X, NewPt1.Y, NewPt2.X, NewPt2.Y);

if (Draw_Dashed_Green)

e.Graphics.DrawLine(red, DashedGreenPT1, DashedGreenPT2);

if (Draw_Solid_Grey)

e.Graphics.DrawLine(Red, SolidGreyPT1, SolidGreyPT2);

if (Draw_dashed_Grey)

e.Graphics.DrawLine(red, DashedGreyPT1, DashedGreyPT2);




Need Help
Here is my code so far.
BDW, The point of the line is stored in the list from.
The Drawn lines in Paint event also include the line jumpers which has 6 points on it to make a jumps.



So the only problem is I would like to change the Points of the lines as I use the scroll bar.
Thanks for answering my question.







c# winforms gdi+






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 23 hours ago

























asked yesterday









jayromel lawas

114




114











  • Can you explain what is the effect that you looking for? Are you trying to move the lines position on the surface using the Scrollbars? Or keep them steady? The AutoScrollPosition reports negative values. (Btw, you just need Invalidate())
    – Jimi
    yesterday










  • Uhmmm ... I would like to move the lines position when using the scrollbar. I already use Invalidate() and I put the e.Graphics.TranslateTransform() in the paint event and it works. But the only problem is the point didnt move , only the drawn lines.
    – jayromel lawas
    yesterday










  • Then post the Paint event code. As it is, this is very uncleary to me what you're trying to achieve. Also because, as I said before AutoScrollPosition gives negative values. Then, I already use Invalidate(). I meant you need Invalidate() alone. Adding Update() and Refresh() causes a second repaint for each Scroll() event change.
    – Jimi
    yesterday










  • private void Form1_Paint(object sender, PaintEventArgs e) { Point scrollOffset = this.AutoScrollPosition; e.Graphics.TranslateTransform(scrollOffset.X, scrollOffset.Y); e.Graphics.Clear(this.BackColor);
    – jayromel lawas
    23 hours ago










  • Nope, you need to Edit your question, adding any code snippet or description that can further explain your case. Don't insert code in comments.
    – Jimi
    23 hours ago
















  • Can you explain what is the effect that you looking for? Are you trying to move the lines position on the surface using the Scrollbars? Or keep them steady? The AutoScrollPosition reports negative values. (Btw, you just need Invalidate())
    – Jimi
    yesterday










  • Uhmmm ... I would like to move the lines position when using the scrollbar. I already use Invalidate() and I put the e.Graphics.TranslateTransform() in the paint event and it works. But the only problem is the point didnt move , only the drawn lines.
    – jayromel lawas
    yesterday










  • Then post the Paint event code. As it is, this is very uncleary to me what you're trying to achieve. Also because, as I said before AutoScrollPosition gives negative values. Then, I already use Invalidate(). I meant you need Invalidate() alone. Adding Update() and Refresh() causes a second repaint for each Scroll() event change.
    – Jimi
    yesterday










  • private void Form1_Paint(object sender, PaintEventArgs e) { Point scrollOffset = this.AutoScrollPosition; e.Graphics.TranslateTransform(scrollOffset.X, scrollOffset.Y); e.Graphics.Clear(this.BackColor);
    – jayromel lawas
    23 hours ago










  • Nope, you need to Edit your question, adding any code snippet or description that can further explain your case. Don't insert code in comments.
    – Jimi
    23 hours ago















Can you explain what is the effect that you looking for? Are you trying to move the lines position on the surface using the Scrollbars? Or keep them steady? The AutoScrollPosition reports negative values. (Btw, you just need Invalidate())
– Jimi
yesterday




Can you explain what is the effect that you looking for? Are you trying to move the lines position on the surface using the Scrollbars? Or keep them steady? The AutoScrollPosition reports negative values. (Btw, you just need Invalidate())
– Jimi
yesterday












Uhmmm ... I would like to move the lines position when using the scrollbar. I already use Invalidate() and I put the e.Graphics.TranslateTransform() in the paint event and it works. But the only problem is the point didnt move , only the drawn lines.
– jayromel lawas
yesterday




Uhmmm ... I would like to move the lines position when using the scrollbar. I already use Invalidate() and I put the e.Graphics.TranslateTransform() in the paint event and it works. But the only problem is the point didnt move , only the drawn lines.
– jayromel lawas
yesterday












Then post the Paint event code. As it is, this is very uncleary to me what you're trying to achieve. Also because, as I said before AutoScrollPosition gives negative values. Then, I already use Invalidate(). I meant you need Invalidate() alone. Adding Update() and Refresh() causes a second repaint for each Scroll() event change.
– Jimi
yesterday




Then post the Paint event code. As it is, this is very uncleary to me what you're trying to achieve. Also because, as I said before AutoScrollPosition gives negative values. Then, I already use Invalidate(). I meant you need Invalidate() alone. Adding Update() and Refresh() causes a second repaint for each Scroll() event change.
– Jimi
yesterday












private void Form1_Paint(object sender, PaintEventArgs e) { Point scrollOffset = this.AutoScrollPosition; e.Graphics.TranslateTransform(scrollOffset.X, scrollOffset.Y); e.Graphics.Clear(this.BackColor);
– jayromel lawas
23 hours ago




private void Form1_Paint(object sender, PaintEventArgs e) { Point scrollOffset = this.AutoScrollPosition; e.Graphics.TranslateTransform(scrollOffset.X, scrollOffset.Y); e.Graphics.Clear(this.BackColor);
– jayromel lawas
23 hours ago












Nope, you need to Edit your question, adding any code snippet or description that can further explain your case. Don't insert code in comments.
– Jimi
23 hours ago




Nope, you need to Edit your question, adding any code snippet or description that can further explain your case. Don't insert code in comments.
– Jimi
23 hours ago

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53219621%2fdrawing-lines-in-autoscroll-form-c-sharp%23new-answer', 'question_page');

);

Post as a guest



































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes















 

draft saved


draft discarded















































 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53219621%2fdrawing-lines-in-autoscroll-form-c-sharp%23new-answer', 'question_page');

);

Post as a guest














































































這個網誌中的熱門文章

Is there any way to eliminate the singular point to solve this integral by hand or by approximations?

Why am i infinitely getting the same tweet with the Twitter Search API?

Solve: $(3xy-2ay^2)dx+(x^2-2axy)dy=0$