次の方法で共有


Line コントロール (Visual Basic 6.0 ユーザー向け)

更新 : 2007 年 11 月

Visual Basic 6.0 の Line コントロールに対応するものは、Visual Basic 2008 にはありません。ただし、グラフィックス メソッドを使って、同じ結果を得ることができます。または、オプションの Visual Basic Power Packs の LineShape コントロールを使用することもできます。

概念の違い

Visual Basic 6.0 では、Line コントロールを使って、デザイン時にフォームに線を簡単に描画できます。Line コントロールは "軽量コントロール"です。つまり、このコントロールは Windows ハンドル (HWnd とも呼びます) を持ちません。

Visual Basic 2008 には、Line コントロールに対応するものはなく、軽量コントロールもサポートされなくなりました。ただし、デザイン時と実行時の両方で線をフォームに描画する方法があります。

2yscxd11.alert_note(ja-jp,VS.90).gifメモ :

オプションの Visual Basic Power Packs コントロールには、LineShape コントロール、OvalShape コントロール、および RectangleShape コントロールが含まれます。これらは Line コントロールと Shape コントロールの代わりに使用できます。Visual Basic 6.0 の Line コントロールおよび Shape コントロールと同じ動作をするだけでなく、これらのコントロールには新機能が加えられています。追加された機能は、グラデーションの塗りつぶし、実行時選択、実行時イベントなどです。

Visual Basic Power Packs は、MSDN Web サイトの Microsoft Visual Basic 2005 Power Packs ページからダウンロードできます。

デザイン時に垂直線または水平線をフォーム上に描画するには、Label コントロールを追加し、Text プロパティを空の文字列に設定し、BorderStyle プロパティを None に設定し、Width プロパティまたは Height プロパティを 1 に設定します。

新しい Graphics オブジェクトを作成し、そのメソッドを呼び出すことにより、実行時にフォームの Paint イベント ハンドラで垂直線、水平線、または斜線を描画できます。

Visual Basic 6.0 で、Line コントロールを使って PictureBox コントロールや Frame コントロールなどのコンテナ コントロールの前面に線を描画するには、Line コントロールをコンテナに追加します。

Visual Basic 2008 では、DrawLine メソッドをコンテナ コントロールの Paint イベント内で呼び出すことにより、同じ結果が得られます。

Line コントロールを扱うコードの変更

次のコード例は、Visual Basic 6.0 と Visual Basic 2008 のコーディング テクニックの違いを示します。

水平線または垂直線の描画

次のコード例は、実行時に水平線や垂直線をフォームに描画する方法を示しています。Visual Basic 6.0 のコード例では、Line コントロールを使用し、2 つの Line コントロールがデザイン時に追加されていると仮定します。Visual Basic 2008 のコード例では、Label コントロールを使用する方法と、Graphics の各メソッドを使用する方法の 2 つを示します。

2yscxd11.alert_note(ja-jp,VS.90).gifメモ :

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 メソッドを使用します。

2yscxd11.alert_note(ja-jp,VS.90).gifメモ :

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 コントロールを参照しているコードは、LineShape コントロールを使用するようにアップグレードされます。これらのコントロールは、オプションの Visual Basic Power Packs ライブラリに含まれています。アップグレード中に Line コントロールへの参照が見つかると、警告が発行されます。警告が発行されたら、ライブラリをインストールし、アップグレードされたプロジェクトから参照する必要があります。

Visual Basic Power Packs は、MSDN Web サイトの Microsoft Visual Basic 2005 Power Packs ページからダウンロードできます。

参照

概念

グラフィックス (Visual Basic 6.0 ユーザー向け)