用户在Visual Studio C#中绘制一条直线以及随鼠标一起移动的线条?

时间:2016-06-24 10:36:45

标签: c# visual-studio user-interface

用户应该能够在面板上绘制一条直线,类似于在绘画中绘制直线。

用户点击面板,当他移动鼠标时,该线也应该与鼠标一起移动(即类似于在绘画中绘制一条直线),当用户释放鼠标时,该线应该是从点击此发布点的原始点。

,即不是一条自由的手。

这有什么动画吗?

1 个答案:

答案 0 :(得分:0)

这个怎么样? :

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);
    }
}

要测试,您只需将新的LinePanel()添加到表单的Controls集合中,然后设置位置/大小或锚点/停靠参数以确定其大小。