Forums Neueste Beiträge
 

GDI, DrawLine

15/04/2010 - 20:47 von Horst Artner | Report spam
Hallo NG,

beim Zeichnen einer Linie möchte ich die Verbindungslinie zwischen dem
ersten Punkt und der Cursor-Position vor Fixierung des zweiten Punktes und
Zeichnen der Linie anzeigen. Mein untenstehender Code zeichnet alle
Verbindungslinien, die durch MouseMove-Ereignis definiert werden. Jedoch
möchte ich nur die aktuelle Spur haben, also die jeweils vorangegangene soll
wieder verschwinden.

Wie kann ich dies bewerkstelligen?

private void splitContainer1_Panel2_MouseDown(object sender,
MouseEventArgs e)
{
if (e.Button == MouseButtons.Left) points[0] = e.Location;
}

private void splitContainer1_Panel2_MouseUp(object sender,
MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
pointsLine[1] = e.Location;
graphics.DrawLine(Pens.Black, points[0], points[1]);
}
}

private void splitContainer1_Panel2_MouseMove(object sender,
MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
points[1] = e.Location;
graphics.DrawLine(Pens.Aqua, points[0], points[1]);

}
}

Mit freundlichem Gruß
Horst
 

Lesen sie die antworten

#1 Thorsten Gudera
16/04/2010 - 00:20 | Warnen spam
Hallo Horst,

"Horst Artner" schrieb im
Newsbeitrag news:
Hallo NG,

Jedoch
möchte ich nur die aktuelle Spur haben, also die jeweils vorangegangene
soll
wieder verschwinden.



z.B.:

private Point[] pt = new Point[2];

private void splitContainer1_Panel2_MouseDown(object sender,
MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
pt[0] = e.Location;
}

private void splitContainer1_Panel2_MouseMove(object sender,
MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
pt[1] = e.Location;
this.splitContainer1.Panel2.Invalidate();
}
}

private void splitContainer1_Panel2_Paint(object sender,
PaintEventArgs e)
{
e.Graphics.DrawLine(Pens.Blue, pt[0], pt[1]);
}

Viele Grüße,

Thorsten

Ähnliche fragen