Visual Basic 6.0 使用者可用的 Line 控制項

更新:2007 年 11 月

Visual Basic 6.0 的 Line 控制項在 Visual Basic 2008 中沒有對等用法。但是您可以使用 Graphics 方法達到相同效果,或者也可以使用選擇性的 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 控制項加入至容器,就可以使用 Line 控制項在容器控制項的頂端繪製線條,例如 PictureBox 或 Frame 控制項。

在 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 中,預設的測量單位是 Twip;而 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 中,預設的測量單位是 Twip;而 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 使用者可用的圖形