C#中如何画线?鼠标点击一下,记下第一个点,鼠标抬起时记录第二个点,同时停止画线

 我来答
0xCBA000
推荐于2016-11-07 · TA获得超过282个赞
知道答主
回答量:123
采纳率:0%
帮助的人:149万
展开全部
用GDI+

Graphics gra;
Point firstpoint;
Point secondpoint;
private void Form1_Load(object sender, EventArgs e)
{
gra = this.CreateGraphics();
firstpoint = new Point(0, 0);
secondpoint = new Point(0, 0);
}

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
firstpoint.X = e.X;
firstpoint.Y = e.Y;
}

private void Form1_MouseUp(object sender, MouseEventArgs e)
{
secondpoint.X = e.X;
secondpoint.Y = e.Y;
gra.DrawLine(Pens.Black, firstpoint, secondpoint);
}
追问
我想知道在画线的过程中,如何随着鼠标的移动而画线,当鼠标放下的时候,线画好了(只是一条线,而不是一大片扫过的部分)。
追答
要那个耀眼的效果啊,麻烦而且累人
再加一个控件,比如说PictureBox,用它的事件和graphic去画,加一个mousemove事件,再弄一个开关,画法与上面一样,最后画好了再清picturebox,画到form上去:

class Line
{
public Line(Point pt1, Point pt2)
{
this.pt1 = pt1;
this.pt2 = pt2;
}
public Point pt1;
public Point pt2;
}
Graphics grapic;
Point firstpoint;
Point secondpoint;
bool moving = false;
List lines = new List();
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
pictureBox1.Refresh();
pictureBox1.BackColor = Color.Transparent;
secondpoint.X = e.X;
secondpoint.Y = e.Y;
lines.Add(new Line(firstpoint, secondpoint));
foreach (Line line in lines)
{
grapic.DrawLine(Pens.Black, line.pt1, line.pt2);
}
moving = false;
}

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
pictureBox1.Refresh();
foreach (Line line in lines)
{
grapic.DrawLine(Pens.Black, line.pt1, line.pt2);
}
firstpoint.X = e.X;
firstpoint.Y = e.Y;
moving = true;
}

private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (moving)
{

pictureBox1.Refresh();
foreach (Line line in lines)
{
grapic.DrawLine(Pens.Black, line.pt1, line.pt2);
}
pictureBox1.BackColor = Color.Transparent;
grapic.DrawLine(Pens.Black, firstpoint, new Point(e.X, e.Y));
}

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
funlove9
2011-06-28 · TA获得超过475个赞
知道小有建树答主
回答量:775
采纳率:0%
帮助的人:606万
展开全部
你不是知道了吗?就按你理解的写成C#语句就可以了
分别是mousedown记下鼠标位置,mouseup事件中得到鼠标位置。然后drawline就可以了

淘宝小店--有机品生活馆
有多种全天然保健品出售
可以淘宝首页搜店铺aling2005。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式