line控件和方法
来源:互联网 发布:算法4和算法导论哪个好 编辑:程序博客网 时间:2024/06/16 19:29
在VB6中,画直线有两种途径
- line方法
- line控件
line方法,就是在代码中用line(x1,y1)-(x2,y2)直接画线
这种方式看似简单,但也容易出错
看链接,出现部分图形显示不出来的问题。其原因为:
“Line方法可以用来在窗体上绘制直线,但是如果窗体的AutoRedraw属性设置为False,则Line方法必须通过Refresh方法才能显示出来。”
链接中的问题,原因在于此。但是这个结论不能机械的套用,有不成立的时候。当然为了避免出问题,还是按照原则来写代码保险。
http://bbs.csdn.net/topics/390951343?page=1#post-398660676
line控件,比用label模拟直线好的多。它可以画斜线
比较其他VB6控件可以用move来移动,而line控件没有move,但可以用直线两个端点的两对(x,y)坐标设置,来改变(动态)位置、长短
Line控件应用
1. 功能
Line控件是图形控件,该控件主要用于修饰窗体和显示直线。可以在窗体或其他容器控件中画出水平线、垂直线或者对角线。
Line控件和Line方法都可以用来在窗体上绘制直线,但是如果窗体的AutoRedraw属性设置为False,则Line方法必须通过Refresh方法才能显示出来。而Line控件总是能够显示在窗体上,除非将Visible属性设置为False。
2. 属性
Line控件不具有Move方法,但是可以通过改变X1、X2,Y1,Y2属性来移动直线或者调整直线的大小。另外BorderStyle属性可以设置直线的样式, BorderWidth属性可以改变线条的粗细。
X1、X2,Y1,Y2属性返回或设置Line控件的起始点(X1,Y1)和终止点(X2,Y2)的坐标。水平坐标是X1和X2,垂直坐标是Y1和Y2。
语法:
object.X1 [= value]
object.Y1 [= value]
object.X2 [= value]
object.Y2 [= value]
object:对象表达式。
value:一个用来指定坐标的数值表达式。
示例:
运用X1、Y1、X2、Y2属性可以定位一条线段的位置,其中X1、Y1是起始点;X2、Y2是终止点,而X1和X2是水平坐标;Y1和Y2是垂直坐标。本示例实现的是在窗体启动的时候通过分别设置Line控件的X1、Y1、X2、Y2属性,来定位Line控件的位置,如图1所示。
图1 定义线段的位置
完整程序代码如下:
'画出两个固定坐标间的线
Private Sub Form_Load()
With Line1 '复用语句
.X1 = 700: .X2 = 1800: .Y1 = 1300: .Y2 = 600 '设置坐标
End With
End Sub
应用一:绘制正方形
实例说明
在多媒体教学中经常需要绘制几何图形,本实例演示的是动态地绘制一个正方形图案。运行程序,系统将自动绘制一个正方形,效果如图2所示。
思路与技术
通过在Timer控件中动态地控制Line控件的X1、Y1、X2和Y2属性来控制绘制正方形的各边长,实现动态绘制正方形的功能。
Line控件的X1、Y1、X2和Y2属性返回或设置Line控件的起始点(X1, Y1)和终止点(X2, Y2)的坐标。控件的水平坐标是X1和X2,垂直坐标是Y1和Y2。
语法格式如下:
object.X1 [= value]
object.Y1 [= value]
object.X2 [= value]
object.Y2 [= value]
参数说明:
Object 对象表达式。
Value 一个用来指定坐标的数值表达式。
开发步骤
(1)新建一个标准工程,创建一个新窗体。
(2)在窗体上添加4个Line控件,设置其Visible属性为False。
Form1窗体中控件部分属性设置如表1所示。
表1 Form1窗体中控件部分属性设置
控件名
属性
值
Line
Name
Line1
Visible
False
Line
Name
Line2
Visible
False
Line
Name
Line3
Visible
False
Line
Name
Line4
Visible
False
Timer
Name
Timer1
(3)为Form1窗体添加如下代码。
'绘制正方形
Private Sub Timer1_Timer()
Line1.Visible = True 'Line1可见
Line1.x1 = 360 '设置Line1起点横坐标
Line1.y1 = 360 '设置Line1起点纵坐标
Line1.Y2 = 360 '设置Line1终点纵坐标
If Line1.X2 > 2280 Then '当Line1终点横坐标大于2280
Line2.Visible = True 'Line2可见
Line2.x1 = 2280 ' Line2的起点横坐标
Line2.X2 = 2280 ' Line2的起点横坐标
Line2.y1 = 360 ' Line2的终点纵坐标
If Line2.Y2 > 2280 Then '当Line2终点纵坐标大于2280
Line3.Visible = True 'Line3可见
Line3.x1 = 2280 '设置Line3起点横坐标
Line3.y1 = 2280 '设置Line3起点纵坐标
Line3.Y2 = 2280 '设置Line3终点纵坐标
If Line3.X2 < 360 Then '当Line2终点横坐标小于360
Line4.Visible = True 'Line4可见
Line4.x1 = 360 'Line4起点横坐标
Line4.Y2 = 2280 ''Line4终点纵坐标
If Line4.y1 <= 360 Then 'Line4终点纵坐标小于等于360
Timer1.Enabled = False 'Timer停用
Else
Line4.y1 = Line4.y1 – 20 'Line4的终点纵坐标减20
End If
Else
Line3.X2 = Line3.X2 - 20 'Line3的起点横坐标减20
End If
Else
Line2.Y2 = Line2.Y2 + 20 'Line2的终点纵坐标加20
End If
Else
Line1.X2 = Line1.X2 + 20 'Line1的终点横坐标加20
End If
End Sub
应用二:利用Line控件设计分割线
在进行窗体设计时,经常使用Frame控件来将信息分门别类,这里介绍利用2个Line控件设计的分隔线,将两个Line控件设置为不同的颜色,显示时错开一些位置。
最终效果如图3所示。
程序代码如下: ★★★★★ Form1 ★★★★★★
设计分割线
Private Sub Form_Load()
With Line1 '复用语句
.BorderColor = &H808080 '设置Line1的背景颜色
.x1 = 0: .X2 = 5000 '设置Line1的起点和终点的横坐标
.y1 = 1100: .Y2 = 1100 '设置Line1的起点和终点的纵坐标
End With
With Line2 '复用语句
.BorderColor = vbWhite '设置Line2的背景颜色为白色
.BorderWidth = 2 '设置边框宽度
.x1 = Line1.x1: .X2 = Line1.X2 '设置Line2的起点和终点横坐标与Line1相同
'设置Line2的起点和终点纵坐标
.y1 = Line1.y1 + 20: .Y2 = Line1.y1 + 20
End With
Line1.ZOrder 0 '置于图层前端
End Sub
应用三:在运行中改动line控件
在运行中可以改动控件,而line控件没有move过程来移动它。但是可以通过改变它的x1,y1,x2,y2属性来移动或变换它的尺寸。
举例:在窗体中以任意长短和位置添加四个line控件,并用控件数组lineControl(0)到lineControl(3)表示。当用户单击command1时,循环地遍历这四条线并使它们呈水平排列。
Private Sub Command1_Click()
Dim intLoopIndex As Integer
For intLoopIndex = 0 To 3
LineCONTROL(intLoopIndex).X1 = 1000
LineCONTROL(intLoopIndex).X2 = 3500
LineCONTROL(intLoopIndex).Y1 = 1000 + 100 * intLoopIndex
LineCONTROL(intLoopIndex).Y2 = LineCONTROL(intLoopIndex).Y1
Next
End Sub
- line控件和方法
- ListView控件和DataPager控件配合方法
- ListView控件属性和方法
- #error、#warning和#line
- height和line-height
- L18#error和#line
- 3.3、#error和#line
- #error和#line
- #error和#line
- 线搜索(line search)方法
- Command Line Tools安装方法
- win10 uwp 绘图 Line 控件使用
- mysql command line client和mysql.exe输入密码后闪退问题解决方法
- 控件MSFlexGrid的属性和方法(VB控件)
- Silverlight获取子控件和父控件方法
- Silverlight获取子控件和父控件方法
- Silverlight获取子控件和父控件方法
- WPF查找子控件和父控件方法
- splunk破解最简单的方案
- linux dd命令详解
- Issues in Linux "man"
- 【HDU】4552 怪盗基德的挑战书 【后缀数组】
- Python解压zip和rar文件
- line控件和方法
- 剑指offer系列源码-翻转单词顺序
- ubuntu删除多余内核方法
- (转载) 如何使用ModelSim對Megafunction或LPM作仿真? (SOC) (MegaCore) (ModelSim)
- 小记
- 本体语言OWL基本知识
- 一种控制进程CPU利用率的方法
- Linux CentOS 配置IP
- 教你如何对齐!