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

更新 : 2007 年 11 月

Visual Basic 2008 では、Visual Basic 6.0 の PictureBox コントロールは Windows フォームの PictureBox コントロールに置き換えられています。プロパティ、メソッド、イベント、および定数の中には、名称が異なるものや、動作の異なるものもあります。

概念の違い

コンテナとしての PictureBox

Visual Basic 6.0 の PictureBox コントロールは、コンテナ コントロールです。画像を表示することに加え、他のコントロールをグループ化して表示するためにも使用できます。

Visual Basic 2008 の PictureBox コントロールは、コンテナ コントロールではありません。画像の表示だけに使用します。コンテナ コントロールが必要な場合は、新しい Panel コントロールを PictureBox コントロールの代わりに使用できます。

AutoSize プロパティ

Visual Basic 6.0 では、AutoSize プロパティによって、PictureBox コントロールをデザイン時のサイズに維持するか (AutoSize = False)、画像の大きさに合わせて自動的にサイズ変更するか (AutoSize = True) が決定されます。

Visual Basic 2008 では、AutoSize プロパティは SizeMode プロパティに置き換えられています。Normal モードと AutoSize モードに加え、画像を中央寄せ、拡大、または縮小するオプションもあります。

グラフィックス プロパティおよびメソッド

Visual Basic 6.0 では、PictureBox コントロール上に線、形状、およびテキストを描画する場合は、グラフィックスの各種プロパティおよびメソッドを使用できます。

Visual Basic 2008 では、グラフィックスのプロパティやメソッドがコントロールで使用されなくなりました。PictureBox コントロール上に T:System.Drawing.Graphics オブジェクトを使って描画を行うことは、これまでどおりできます。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。

その他の違い

また、データ連結、フォント処理、ドラッグ アンド ドロップ機能、ヘルプ サポートなど、すべてのコントロールに当てはまる概念上の相違が数多くあります。詳細については、「Windows フォームの概念 (Visual Basic 6.0 ユーザー向け)」を参照してください。

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

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

画像を表示するコードの変更

次のコードは、実行時に PictureBox コントロールに画像を表示する方法を示します。

' Visual Basic 6.0
Picture1.Picture = LoadPicture(App.Path & "\somepicture.jpg")
' Visual Basic
PictureBox1.Image = System.Drawing.Bitmap.FromFile( _
  My.Application.Info.DirectoryPath & "\somepicture.jpg")

PictureBox コントロールをクリアするコードの変更

次のコード例は、実行時に PictureBox コントロールをクリアして画像が表示されないようにする方法を示します。

' Visual Basic 6.0
Picture1.Picture = LoadPicture("")
' Visual Basic
If Not (PictureBox1.Image Is Nothing) Then
    PictureBox1.Image.Dispose()
    PictureBox1.Image = Nothing
End If

PictureBox コントロール上に描画するコードの変更

次のコードは、実行時に PictureBox コントロールの中央に直径 40 ピクセルの赤い円を描画する方法を示します。

' Visual Basic 6.0
Private Sub Picture1_Paint
    Dim x As Integer
    Dim y As Integer
    Picture1.ScaleMode = vbPixels
    x = Picture1.ScaleWidth / 2
    y = Picture1.ScaleHeight / 2
    Picture1.Circle (x, y), 20, vbRed
End Sub
' Visual Basic
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e _
As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
    Dim radius As Integer = 20
    Dim diameter As Integer = radius * 2
    Dim x As Integer = (PictureBox1.Width / 2) - radius
    Dim y As Integer = (PictureBox1.Height / 2) - radius
    e.Graphics.DrawEllipse(Pens.Red, x, y, diameter, diameter)
End Sub

PictureBox コントロールのプロパティ、メソッド、およびイベントの同等物

次の表は、Visual Basic 6.0 のプロパティ、メソッド、およびイベントと、対応する Visual Basic 2008 のプロパティ、メソッド、およびイベントの一覧です。同じ名前で同じ動作を持つプロパティ、メソッド、およびイベントは、一覧に含まれていません。必要に応じて、プロパティまたはメソッドの下に定数が示されています。特に明記されていない限り、すべての Visual Basic 2008 列挙型は System.Windows.Forms 名前空間に対応します。

この表には、動作の違いを説明するトピックへのリンクも含まれています。Visual Basic 2008 に直接対応するものがない場合は、代わりの項目について説明したトピックへのリンクを示します。

プロパティ

Visual Basic 6.0

Visual Basic 2008 で対応するもの

Align

Dock

Appearance

新規に実装されました。詳細については、「Appearance プロパティおよび BorderStyle プロパティ (Visual Basic 6.0 ユーザー向け)」を参照してください。

AutoRedraw

新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。

AutoSize

SizeMode

BackColor

BackColor

zzt5x46b.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、色は別の方法で処理されます。詳細については、「色の動作 (Visual Basic 6.0 ユーザー向け)」を参照してください。

BorderStyle

BorderStyle

zzt5x46b.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 6.0 の場合、既定値は Fixed Single です。Visual Basic 2008 の場合、既定値は None です。

ClipControls

新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。

Container

Parent

CurrentX

CurrentY

新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。

DataChanged

DataField

DataFormat

DataMember

DataSource

新規に実装されました。詳細については、「データ アクセス (Visual Basic 6.0 ユーザー向け)」を参照してください。

DragIcon

DragMode

新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。

DrawMode

DrawStyle

DrawWidth

FillColor

FillStyle

新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。

Font

FontBold

FontItalic

FontName

FontSize

FontStrikethrough

FontUnderline

Font

zzt5x46b.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、フォントは別の方法で処理されます。詳細については、「フォント オブジェクト (Visual Basic 6.0 ユーザー向け)」を参照してください。

ForeColor

ForeColor

zzt5x46b.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、色は別の方法で処理されます。詳細については、「色の動作 (Visual Basic 6.0 ユーザー向け)」を参照してください。

HasDC

HDC

新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。

Height

Height, Size

zzt5x46b.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。

HelpContextID

新規に実装されました。詳細については、「ヘルプ サポート (Visual Basic 6.0 ユーザー向け)」を参照してください。

HWnd

Handle

Image

新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。

zzt5x46b.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、Image プロパティはグラフィックス プロパティではありません。これは、Visual Basic 6.0 の Picture プロパティに相当します。

Index

新規に実装されました。詳細については、「コントロール配列 (Visual Basic 6.0 ユーザー向け)」を参照してください。

Left

Left

zzt5x46b.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。

LinkItem

LinkMode

LinkTimeOut

LinkTopic

対応する項目はありません。詳細については、「ダイナミック データ エクスチェンジ (Visual Basic 6.0 ユーザー向け)」を参照してください。

MouseIcon

新規に実装されました。詳細については、「カスタム MousePointer を設定できない」を参照してください。

MousePointer

Cursor

定数の一覧については、「MousePointer (Visual Basic 6.0 ユーザー向け)」を参照してください。

OLEDragMode

OLEDropMode

新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。

Parent

FindForm

Picture

Image

ScaleHeight

ScaleLeft

ScaleMode

ScaleTop

ScaleWidth

新規に実装されました。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。

ToolTipText

ToolTip コンポーネント

詳細については、「ツールヒントのサポート (Visual Basic 6.0 ユーザー向け)」を参照してください。

Top

Top

zzt5x46b.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。

WhatsThisHelpID

新規に実装されました。詳細については、「ヘルプ サポート (Visual Basic 6.0 ユーザー向け)」を参照してください。

Width

Width, Size

zzt5x46b.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。

メソッド

Visual Basic 6.0

Visual Basic 2008 で対応するもの

Circle

Cls

新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。

Drag

新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。

Line

新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。

LinkExecute

LinkPoke

LinkRequest

LinkSend

対応する項目はありません。詳細については、「ダイナミック データ エクスチェンジ (Visual Basic 6.0 ユーザー向け)」を参照してください。

Move

SetBounds

zzt5x46b.alert_note(ja-jp,VS.90).gifメモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。

OLEDrag

新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。

PaintPicture

Point

Print

PSet

新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。

Scale

ScaleX

ScaleY

新規に実装されました。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。

SetFocus

Focus

ShowWhatsThis

新規に実装されました。詳細については、「ヘルプ サポート (Visual Basic 6.0 ユーザー向け)」を参照してください。

TextHeight

TextWidth

新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。

ZOrder

BringToFront メソッドまたは SendToBack メソッド

イベント

Visual Basic 6.0

Visual Basic 2008 で対応するもの

Change

新規に実装されました。プロパティが変更されると、個別のイベント (BackgroundImageChangedSizeChanged など) が発生します。

DblClick

DoubleClick

DragDrop

DragOver

新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。

GotFocus

Enter

KeyDown

KeyPress

KeyUp

新規に実装されました。Visual Basic 2008 の PictureBox コントロールは、コンテナ コントロールではなく、キーストロークを受け取りません。

LinkClose

LinkError

LinkNotify

LinkOpen

対応する項目はありません。詳細については、「ダイナミック データ エクスチェンジ (Visual Basic 6.0 ユーザー向け)」を参照してください。

LostFocus

Leave

OLECompleteDrag

OLEDragDrop

OLEDragOver

OLEGiveFeedback

OLESetData

OLEStartDrag

新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。

Validate

Validating

アップグレード メモ

コントロールを含む PictureBox コントロールは、アップグレード時に Panel コントロールにアップグレードされます。Visual Basic 6.0 の PictureBox コントロールが Panel コントロールにアップグレードされると、Picture プロパティに割り当てられていた画像は、Panel コントロールの BackgroundPicture プロパティに対応付けられます。

参照

参照

PictureBox コントロールの概要 (Windows フォーム)