在C#窗体中单击两次鼠标,在图片框中画线

时间:2017-01-31 10:15:47

标签: c# drawing mouseevent line

我需要帮助在图片框上绘制线条。

我在鼠标点击时得到point2和point2的坐标,我在这两个坐标之间画了一条线。

我需要做的是为point1取值并从该点开始绘制线条,并且线条应该跟随我的光标,当我第二次点击图片框时,应该绘制它。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是我到目前为止所拥有的

// Points p1(x1,y1), p2(x2,y2)
        private Point p1, p2;
        List<Point> p1List = new List<Point>();
        List<Point> p2List = new List<Point>();

        int count = 0;
        // Click 2 times on image to get coordinate values for p1 & p2
        private void pbChooseDirection_MouseDown(object sender, MouseEventArgs e)
        {

            if(count/2 == 0)
            {
                pbChooseDirection.Image = drawingLineImage;
            }

            if (p1.X == 0)
            {
                p1.X = e.X;
                p1.Y = e.Y;
                count++;
            }
            else
            {
                p2.X = e.X;
                p2.Y = e.Y;
                count++;

                p1List.Add(p1);
                p2List.Add(p2);

                Invalidate();
                // Sets X to 0 and choose p1 again
                p1.X = 0;
            }

        }

private void pbChooseDirection_Paint_1(object sender, PaintEventArgs e)
        {
            using (var p = new Pen(Color.Blue, 4))
            {
                for (int x = 0; x < p1List.Count; x++)
                {
                    e.Graphics.DrawLine(p, p1List[x], p2List[x]);
                }
            }
        }