十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
代码写起来可能比较麻烦,给你个思路,就是用GraphicsPath来绘制,然后通过绘制目标的鼠标移动事件来获取当前鼠标在绘制目标中的实际位置,再通过GraphicsPath的IsVisible()方法来确认鼠标是否包含在GraphicsPath中。
专注于为中小企业提供做网站、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业通州免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
DrawLine直线比较容易处理,只要得到Line的坐标点,然后比较当前鼠标坐标就好。
这个必须用控件的方法解决,VB6有个Line控件很容易解决这个问题,但是VB.NET没有了,幸好微软也想到了这个缺陷,提供免费的Visual Basic PowerPacks控件箱,其中有Line控件。
Visual Basic PowerPacks下载地址:
使用 LineShape 控件绘制直线:
1. 创建一个Graphics对象实例。
绘制图形必须创建Graphics对象。如果是在窗体上绘图,要使用下列代码创建Graphics对象;
Dim MyGraphics As Graphics = Me.CreateGraphics
如果是在PictrueBox里绘图,要使用下列代码创建Graphics对象;
Dim MyGraphics As Graphics = PictureBox1.CreateGraphics
2. 定义一个Brush对象,用来填充图形(如果你需要填充的话)。
如果填充封闭曲线或者多边形,必须创建Brush对象(或者Brush类的继承类对象),用来确定填充的颜色。例如下面的代码,创建了一个填充红色的画刷对象。在最后的括号里,用Color结构指定的枚举值,确定画刷的颜色。限于篇幅有关Color结构这里不展开,可能在后续博文里介绍。
Dim RedBrush As New SolidBrush(Color.Red)
画直线
为了在两个坐标点之间画一条直线,可使用 Line 方法的简单形式,其语法如下:
[object.]Line [(x1, y1)]–(x2, y2)[, color]
其中 Object 是可选择的;若省略,此方法将在代码所连接的窗体(当前窗体)上画线。第一对坐标也是可选的。就所有的坐标值来说,x 和 y 参数都既可以是整数,也可以是分数。例如,下列语句可在窗体上画一条斜线。
Line (500, 500)–(2000, 2000)
Visual Basic 所画出的一条直线,要包括第一个端点,而不是最后一个端点。这种行为在从点到点画封闭曲线时是有用的。为了画最后一个端点,应使用这种语法:
PSet [Step] (0, 0)[, color]
第一对坐标 (x1, y1) 是可选的。如果省略这些坐标,将把该对象的 x,y 当前位置(画图坐标)作为端点。当前位置是由 CurrentX 和 CurrentY 属性指定的,然而在其它情况它会等于以前的图形方法或 Print 方法所画最后点的位置。如果以前没有使用过图形方法或 Print 方法,或没有设置 CurrentX 和 CurrentY 属性,则缺省位置为对象的左上角。
例如,以下语句通过三点连接画出一个三角形。
'设置起点的 x 坐标。
CurrentX = 1500
'设置起点的 y 坐标。
CurrentY = 500
'向起点的右下方画一直线。
Line -(3000, 2000)
'向当前点的左方画一直线。
Line -(1500, 2000)
'向右上方画一直线到起点。
Line -(1500, 500)
Blanker 应用程序使用 Line 方法创建出了一些有趣的图案样式。为了看到这些图案,可从“选项”菜单中,选定“Crossfire”,然后选定“Start Demo”按钮,即可看到。
Step 关键字
PSet、Line、和 Circle 方法使用以下语法可指定一个或多个点:
(x, y)
可在每个点之前加上 Step 关键字,用来指定要画出的点,是相对最后画出点的位置。Visual Basic 要将 x 和 y 的值加到最后所画的点上。例如,下边这条语句:
Line (100, 200)–(150, 250)
等价于:
Line (100, 200)–Step(50, 50)
在许多情况下,Step 关键字可免除持续不断地记录最后所画点位置的负担。经常最为关心的可能是两点的相对位置,而不是它们的绝对位置。
使用颜色参数
为了改变直线的颜色,应将可选的 color 参数与图形方法一起使用。例如,下述语句将画一条深蓝色的直线:
Line (500, 500)–(2000, 2000), RGB(0, 0, 255)
如果省略了 color 参数,将使用在其上画线的对象的 ForeColor 属性,来决定直线的颜色。
RND来设置随机值