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 |
|
Appearance |
新規に実装されました。詳細については、「Appearance プロパティおよび BorderStyle プロパティ (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
AutoRedraw |
新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
AutoSize |
|
BackColor |
メモ :
Visual Basic 2008 では、色は別の方法で処理されます。詳細については、「色の動作 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
BorderStyle |
メモ :
Visual Basic 6.0 の場合、既定値は Fixed Single です。Visual Basic 2008 の場合、既定値は None です。
|
ClipControls |
新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Container |
|
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 |
メモ :
Visual Basic 2008 では、フォントは別の方法で処理されます。詳細については、「フォント オブジェクト (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
ForeColor |
メモ :
Visual Basic 2008 では、色は別の方法で処理されます。詳細については、「色の動作 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
HasDC HDC |
新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Height |
メモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
HelpContextID |
新規に実装されました。詳細については、「ヘルプ サポート (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
HWnd |
|
Image |
新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。
メモ :
Visual Basic 2008 では、Image プロパティはグラフィックス プロパティではありません。これは、Visual Basic 6.0 の Picture プロパティに相当します。
|
Index |
新規に実装されました。詳細については、「コントロール配列 (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Left |
メモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
LinkItem LinkMode LinkTimeOut LinkTopic |
対応する項目はありません。詳細については、「ダイナミック データ エクスチェンジ (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
MouseIcon |
新規に実装されました。詳細については、「カスタム MousePointer を設定できない」を参照してください。 |
MousePointer |
定数の一覧については、「MousePointer (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
OLEDragMode OLEDropMode |
新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Parent |
|
Picture |
|
ScaleHeight ScaleLeft ScaleMode ScaleTop ScaleWidth |
新規に実装されました。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
ToolTipText |
ToolTip コンポーネント 詳細については、「ツールヒントのサポート (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Top |
メモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
WhatsThisHelpID |
新規に実装されました。詳細については、「ヘルプ サポート (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Width |
メモ :
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 |
メモ :
Visual Basic 2008 では、座標は別の方法で処理されます。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。
|
OLEDrag |
新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
PaintPicture Point PSet |
新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Scale ScaleX ScaleY |
新規に実装されました。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
SetFocus |
|
ShowWhatsThis |
新規に実装されました。詳細については、「ヘルプ サポート (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
TextHeight TextWidth |
新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
ZOrder |
BringToFront メソッドまたは SendToBack メソッド |
イベント
Visual Basic 6.0 |
Visual Basic 2008 で対応するもの |
---|---|
Change |
新規に実装されました。プロパティが変更されると、個別のイベント (BackgroundImageChanged、SizeChanged など) が発生します。 |
DblClick |
|
DragDrop DragOver |
新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
GotFocus |
|
KeyDown KeyPress KeyUp |
新規に実装されました。Visual Basic 2008 の PictureBox コントロールは、コンテナ コントロールではなく、キーストロークを受け取りません。 |
LinkClose LinkError LinkNotify LinkOpen |
対応する項目はありません。詳細については、「ダイナミック データ エクスチェンジ (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
LostFocus |
|
OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag |
新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
Validate |
アップグレード メモ
コントロールを含む PictureBox コントロールは、アップグレード時に Panel コントロールにアップグレードされます。Visual Basic 6.0 の PictureBox コントロールが Panel コントロールにアップグレードされると、Picture プロパティに割り当てられていた画像は、Panel コントロールの BackgroundPicture プロパティに対応付けられます。