# 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 所示。

图 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]

参数说明：

l Object 对象表达式。

l Value 一个用来指定坐标的数值表达式。

### 开发步骤

（1）新建一个标准工程，创建一个新窗体。

（2）在窗体上添加 4 个 Line 控件，设置其 Visible 属性为 False。

Form1 窗体中控件部分属性设置如表 1 所示。

表 1 Form1 窗体中控件部分属性设置

控件名 | 属性 | 值
Line | Name Visible | Line1 False
Line | Name Visible | Line2 False
Line | Name Visible | Line3 False
Line | Name Visible | Line4 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 所示。

图 3 利用 Line 控件设计分割线

程序代码如下：

★★★★★ 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