Line 控件(针对 Visual Basic 6.0 用户)

更新:2007 年 11 月

Visual Basic 6.0 中的 Line 控件在 Visual Basic 2008 中没有等效项。不过,您可以使用图形方法获得同样的效果,也可以使用可选的 Visual Basic Power Pack LineShape 控件。

概念差异

在 Visual Basic 6.0 中,Line 控件提供了一种在设计时在窗体上绘制线条的简单方法。Line 控件是“轻量控件”,也就是说该控件没有 Windows 句柄(也称为 HWnd)。

在 Visual Basic 2008 中,没有 Line 控件的等效项,并且也不再支持轻量控件。但提供了在设计时和运行时在窗体上绘制线条的方法。

说明:

可选的 Visual Basic Power Pack 控件包括 LineShape、OvalShape 和 RectangleShape 控件,这些控件可用于替换 Line 和 Shape 控件。这些控件除了具备 Visual Basic 6.0 Line 和 Shape 控件的行为之外,还增加了新的功能。这些新功能包括渐变填充、运行时选择和运行时事件。

您可以从 MSDN 网站的 Microsoft Visual Basic 2005 Power Packs 页面下载 Visual Basic Power Pack。

在设计时,可以在窗体上绘制竖线或横线,方法是:添加一个 Label 控件,然后将 Text 属性设置为空字符串,将 BorderStyle 属性设置为 None 并将 WidthHeight 属性设置为 1。

运行时,可以通过创建新的 Graphics 对象并调用其方法,在窗体的 Paint 事件处理程序中绘制横线、竖线和对角线。

在 Visual Basic 6.0 中,可以使用 Line 控件在 PictureBox 或 Frame 控件等容器控件的顶部绘制线条,方法是向相应容器添加一个 Line 控件。

在 Visual Basic 2008 中,可以通过在容器控件的 Paint 事件中调用 DrawLine 方法获得同样的效果。

Line 控件的代码更改

下面的示例说明 Visual Basic 6.0 和 Visual Basic 2008 在编码方法上的不同之处。

绘制横线或竖线

下面的代码演示如何在运行时在窗体上绘制横线或竖线。在此 Visual Basic 6.0 示例中,使用了 Line 控件;假定在设计时添加了两个 Line 控件。此 Visual Basic 2008 示例演示了两种方法:使用 Label 控件和使用 Graphics 方法。

说明:

在 Visual Basic 6.0 中,默认度量单位为缇;在 Visual Basic 2008 中,默认度量单位为像素。

' Visual Basic 6.0
Private Sub Form_Load()
    ' Draw a horizontal line 200 twips from the top of the form.
    Line1.X1 = 0
    Line1.X2 = Me.Width
    Line1.Y1 = 200
    Line1.Y2 = 200
    Line1.BorderColor = vbRed
    Line1.BorderWidth = 1
    ' Draw a vertical line 200 twips from the left of the form.
    Line1.Y1 = 0
    Line1.Y2 = Me.Height
    Line1.X1 = 200
    Line1.X2 = 200
    Line1.BorderColor = vbBlue
    Line1.BorderWidth = 1
' Visual Basic
' Using Label controls.
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
    Dim Line1 As New System.Windows.Forms.Label
    Dim Line2 As New System.Windows.Forms.Label
    ' Draw a horizontal line 14 pixels from the top of the form.
    Line1.Location = New System.Drawing.Point(0, 14)
    Line1.Size = New System.Drawing.Size(Me.Width, 1)
    Line1.BorderStyle = BorderStyle.None
    Line1.BackColor = System.Drawing.Color.Red
    Line1.Text = ""
    Controls.Add(Line1)
    ' Draw a vertical line 14 pixels from the left of the form.
    Line2.Location = New System.Drawing.Point(14, 0)
    Line2.Size = New System.Drawing.Size(1, Me.Height)
    Line2.BorderStyle = BorderStyle.None
    Line2.BackColor = System.Drawing.Color.Blue
    Line2.Text = ""
    Controls.Add(Line2)
End Sub
' Visual Basic
    ' Using Graphics methods.
Private Sub Form1Paint(ByVal sender As Object, _
ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
    ' Draw a horizontal line 28 pixels from the top of the form.
    e.Graphics.DrawLine(Pens.Red, 0, 28, Me.Width, 28)
    ' Draw a vertical line 28 pixels from the left of the form.
    e.Graphics.DrawLine(Pens.Blue, 28, 0, 28, Me.Height)
End Sub

绘制对角线

下面的代码演示如何在运行时在窗体上绘制对角线。在 Visual Basic 6.0 示例中,使用的是 Line 控件;并假定在设计时添加了一个 Line 控件。此 Visual Basic 2008 示例使用的是 Graphics 方法。

说明:

在 Visual Basic 6.0 中,默认度量单位为缇;在 Visual Basic 2008 中,默认度量单位为像素。

' Visual Basic 6.0
Private Sub Form_Load()
    ' Draw a diagonal line from the top left to the lower right.
    Line1.X1 = 0
    Line1.X2 = Me.ScaleWidth
    Line1.Y1 = 0
    Line1.Y2 = Me.ScaleHeight
    Line1.BorderColor = vbBlack
    Line1.BorderWidth = 1
End Sub
' Visual Basic
Private Sub FormPaint(ByVal sender As Object, _
ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
    ' Draw a diagonal line from the top left to the lower right.
    e.Graphics.DrawLine(Pens.Black, 0, 0, Me.ClientSize.Width, _
    Me.ClientSize.Height)
End Sub

升级说明

升级 Visual Basic 6.0 应用程序时,引用 Line 控件的代码将升级为使用可选 Visual Basic Power Pack 库中包含的 LineShape 控件。如果在升级过程中发现存在对 Line 控件的引用,将发出一个警告,您将必须安装此库并从升级后的项目中引用它。

您可以从 MSDN 网站的 Microsoft Visual Basic 2005 Power Packs 页面下载 Visual Basic Power Pack。

请参见

概念

图形(针对 Visual Basic 6.0 用户)