代码写起来可能比较麻烦,给你个思路,就是用GraphicsPath来绘制,然后通过绘制目标的鼠标移动事件来获取当前鼠标在绘制目标中的实际位置,再通过GraphicsPath的IsVisible()方法来确认鼠标是否包含在GraphicsPath中。
创新互联是一家集网站建设,芮城企业网站建设,芮城品牌网站建设,网站定制,芮城网站建设报价,网络营销,网络优化,芮城网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
DrawLine直线比较容易处理,只要得到Line的坐标点,然后比较当前鼠标坐标就好。
这个必须用控件的方法解决,VB6有个Line控件很容易解决这个问题,但是VB.NET没有了,幸好微软也想到了这个缺陷,提供免费的Visual Basic PowerPacks控件箱,其中有Line控件。
Visual Basic PowerPacks下载地址:
使用 LineShape 控件绘制直线:
画直线
为了在两个坐标点之间画一条直线,可使用 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来设置随机值
ACCESS窗体主要是用来开发数据库应用系统的,如果你想在窗体上画线条的确不太给力。在VB窗体里划线以坐标为参数使用LINE方法非常方便,但是在OFFICE,ACCESS里的VBA
LINE方法(当然需要使用坐标参数,联机说明有详细介绍)只能应用于报表而不能应用于窗体。
若要在ACCESS窗体里面划线,我建议你使用下列两种办法:
1)如果你VB比较熟练,可用VB设计一个带LINE方法的自定义ActiveX控件,然后再在ACCESS
VBA中引用该控件,之后将你的自定义控件添加到ACCESS窗体里面,你就可以使用那个ActiveX控件的LINE方法在该控件里绘图划线了;
2)使用ACCESS提供的内置直线控件(Line)。
首先在ACCESS窗体里放置若干个Line控件(要用多少个就放置多少个)将Visible属性设置为False,给不同用途的Line控件分别命名为:类型加尾号,例如:X轴标尺1,X轴标尺2,...
斜线1,斜线2.....
直线1,直线2,......等等
以便以后可集中而不必为每一个控件壹壹设置属性以提高效率,其它属性暂时不理。
使用VBA语言设置Line控件的各种属性在窗体里的特定位置画线,例如:
画斜线
with
斜线1
.Top=300
‘单位:缇
相当于一个像素
567缇=1厘米
.LineSlant=False
'
确定线条左斜还是右斜
.Left=200
.width=800
.height=400
.visible=true
end
with
画水平线
with
直线2
.Top=300
.Left=900
.width=350
.height=0
.visible=true
end
with
画垂直线
with
直线3
.Top=300
.Left=900
.width=0
.height=300
.visible=true
end
with
直线的粗细
用BorderWidth属性设置(取值范围0-6,单位为磅)
直线的颜色
用Bordercolor属性设置(例如取
vbBlue,vbGreen,vbRed
等等)
特别提醒一下,除了使用直线控件外,其实你还可以使用其它类型的控件来画图,这要看你的想象力了。
只要你正确设置各种画线控件的绝对和相对位置及各种属性值,充分利用VBA的循环、判断等语句相信你能够在ACCESS窗体里画出各种效果相当不错的图形,如果配合Timer甚至还能绘出动画效果!
具体的VBA实现代码这里就不写了,祝你成功!