2016-06-24 15 views
0

Der Benutzer sollte in der Lage sein, eine gerade Linie auf einer Tafel zu zeichnen, ähnlich wie das Zeichnen einer geraden Linie in Farbe.Zeichnen einer geraden Linie in Visual Studio C# durch den Benutzer zusammen mit der Linie bewegt sich mit der Maus?

Der Benutzer klickt auf das Panel und wenn er die Maus bewegt, sollte sich die Linie auch mit der Maus bewegen (dh ähnlich wie eine Staright-Linie in Farbe) und wenn der Benutzer die Maus loslässt sollte die Linie gezeichnet werden der ursprüngliche Klickpunkt zu diesem Freigabepunkt.

, d.h. keine Freihandlinie.

Gibt es eine Animation dafür?

Antwort

0

Wie wäre es damit? : Sie einen neuen LinePanel() hinzufügen können testen

public class LinePanel : Panel 
{ 
    public LinePanel() 
    { 
     this.MouseDown += (src, e) => { LineStartPos = LineEndPos = e.Location; Capture = true; Invalidate(); }; 
     this.MouseMove += (src, e) => { if (Capture) { LineEndPos = e.Location; Invalidate(); } }; 
     this.MouseUp += (src, e) => { if (Capture) { LineEndPos = e.Location; } Capture = false; Invalidate(); }; 
    } 

    private Point LineStartPos, LineEndPos; 

    protected override void OnPaint(PaintEventArgs e) 
    { 
     base.OnPaint(e); 

     if (LineStartPos != LineEndPos) 
      e.Graphics.DrawLine(new Pen(Color.Black, 2), LineStartPos, LineEndPos); 
    } 
} 

nur um es zu der Controls-Auflistung des Formulars, und legen Lage/Größe oder Anker/Dock Paramater zur Größe.

Verwandte Themen