簡體   English   中英

用戶在Visual Studio C#中繪制一條直線以及隨着鼠標移動的直線?

[英]Drawing a straight line in visual studio C# by the user along with the line moving along with the mouse?

用戶應該能夠在面板上畫直線,類似於在油漆中畫直線。

用戶單擊面板時,當他移動鼠標時,該線也應與鼠標一起移動(即類似於在油漆中繪制星形線),並且當用戶釋放鼠標時,該線應從鼠標的原始點繪制單擊此發布點。

即不是自由線。

為此有動畫嗎?

這個怎么樣?

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

要進行測試,您只需向表單的Controls集合添加一個新的LinePanel(),然后設置位置/大小或錨定/停靠參數即可為其設置大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM