实例018 利用鼠标绘图spa
光盘位置:光盘\MR\01\018code
在经常使用的画图软件中,用户通常均可以经过鼠标在其中绘图,那么该功能是如何实现的呢?本实例将讲解如何使用C#实现经过拖动鼠标在窗体上绘图的功能,实例运行效果如图1.18所示。orm
![]() |
图1.18 利用鼠标绘图 |
本实例实现时主要用到了Graphics类的DrawLine方法和MouseEventArgs类的X属性、Y属性,下面分别对它们进行详细介绍。xml
Graphics类中的DrawLine方法主要用来绘制直线,该方法为可重载方法,本实例中用到的重载形式以下:对象
参数说明blog
pen:Pen对象,它肯定线条的颜色、宽度和样式。ci
pt1:Point结构,它表示要链接的第一个点。开发
pt2:Point结构,它表示要链接的第二个点。get
说明:关于MouseEventArgs类的X属性和Y属性的详细讲解,请参见实例005中的关键技术。it
(1)打开Visual Studio 2008开发环境,新建一个Windows窗体应用程序,并将其命名为MouseToDraw。
(2)更改默认窗体Form1的Name属性为Frm_Main。
(3)程序主要代码以下:
private void Form1_MouseMove(object sender, MouseEventArgs e) { if (lastPoint.Equals(Point.Empty)) //判断绘图开始点是否为空 { lastPoint = new Point(e.X, e.Y); //记录鼠标当前位置 } if (G_OnMouseDown) //开始绘图 { Point cruuPoint = new Point(e.X, e.Y); //获取鼠标当前位置 graphics.DrawLine(pen, cruuPoint, lastPoint); //绘图 } lastPoint = new Point(e.X, e.Y); //记录鼠标当前位置 } private void Form1_MouseUp(object sender, MouseEventArgs e) { G_OnMouseDown = false; //开始绘图标识设置为false } private void Form1_MouseDown(object sender, MouseEventArgs e) { G_OnMouseDown = true; //开始绘图标识设置为true }