更新 : 2007 年 11 月
Visual Basic 6.0 の Form オブジェクトは、Visual Basic 2008 では Form クラスに置き換えられています。プロパティ、メソッド、イベント、および定数の中には、名称が異なるものや、動作の異なるものもあります。
Visual Basic 6.0 では、Activate イベントと Deactivate イベントは、フォーム間の切り替えがあったときにだけ発生します。
Visual Basic 2008 では、Activated イベントと Deactivate イベントは、他のアプリケーションとの切り替えがあったときにも発生します。
Visual Basic 6.0 では、QueryUnload イベントは、Cancel および UnloadMode という 2 つの引数を受け取ります。UnloadMode 引数を調べることにより、フォームがアンロードされる理由を確認し、必要に応じてアンロードをキャンセルできます。
Visual Basic 2008 では、QueryUnload イベントは、FormClosing イベントに置き換えられています。UnloadMode は、CloseReason に置き換えられています。
Visual Basic 6.0 では、Picture プロパティに割り当てた画像は、ビットマップがフォームより小さい場合にフォームの左上隅に表示されます。
Visual Basic 2008 では、Picture プロパティは BackgroundImage プロパティに置き換えられています。BackgroundImage プロパティに割り当てられた画像がフォームより小さい場合、既定で画像は並べて表示されます。
Visual Basic 6.0 では、フォームの Moveable プロパティを False に設定すると、ユーザーが実行時にフォームを移動できなくなります。Visual Basic 2008 の Windows フォームには、これに相当するプロパティはありません。
これと同じような動作を Visual Basic 2008 で実現するには、FormBorderStyle プロパティを None に設定し、ControlBox プロパティを False に設定します。ただし、このようなユーザー インターフェイスのデザインは一般に推奨されません。
Visual Basic 6.0 では、フォームを閉じるときにフォーカスがあるコントロールに Validate イベントを発生させるために ValidateControls メソッドを使用します。Validate イベントが失敗すると、エラーが発生します。
Visual Basic 2008 では、ValidateControls メソッドは、Validate メソッドに置き換えられています。このメソッドは、True または False を返します。
Visual Basic 6.0 では、MDI フォームでマウス イベントがサポートされています。Visual Basic 2008 では、MDI フォーム上にマウス イベントを受け取るクライアント領域がないため、MDI フォームでは Click、MouseDown、MouseMove、および MouseUp の各イベントはサポートされません。
次のコード例は、Visual Basic 6.0 と Visual Basic 2008 のコーディング テクニックの違いを示します。
次のコード例は、フォームを閉じる理由と、理由に応じて処理を実行する方法を示します。Visual Basic 6.0 のコード例では、QueryUnload イベントの UnloadMode 引数を使用します。Visual Basic 2008 のコード例では、この引数は FormClosing イベント ハンドラの CloseReason パラメータに置き換えられています。
' Visual Basic 6.0 Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If UnloadMode = vbFormControlMenu Then Cancel = True End If End Sub
' Visual Basic Private Sub Form1_FormClosing(ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles _ MyBase.FormClosing If e.CloseReason.UserClosing Then e.Cancel = True End If End Sub
次のコード例では、フォームを閉じるときにフォーカスがあるコントロールを検証する方法を示しています。この例では、TextBox コントロールの CausesValidation プロパティが既定値の True に設定されていると仮定します。
' Visual Basic 6.0 Private Sub Text1_Validate(Cancel As Boolean) If Text1.Text = "" Then MsgBox ("Please enter a name") Cancel = True End If Private Sub Form_Unload(Cancel As Integer) OnError GoTo ERR_HANDLER Me.ValidateControls ERR_HANDLER: ' If validation failed cancel the Unload event. If Err.Number = 380 Then Cancel = True End If End Sub
' Visual Basic Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As _ System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating If TextBox1.Text = "" Then MsgBox("Please enter a name") e.Cancel = True End If End Sub
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e _ As System.Windows.Forms.FormClosingEventArgs) Handles _ MyBase.FormClosing ' If validation failed cancel the Closing event. If Me.Validate = False Then e.Cancel = True End If End Sub
次の表は、Visual Basic 6.0 のプロパティ、メソッド、およびイベントと、それらに対応する Visual Basic 2008 プロパティの一覧です。同じ名前で同じ動作を持つプロパティ、メソッド、およびイベントは、一覧に含まれていません。必要に応じて、プロパティまたはメソッドの下に定数が示されています。特に明記されていない限り、すべての Visual Basic 2008 列挙型は System.Windows.Forms 名前空間に対応します。
必要に応じて、動作の違いを説明するトピックへのリンクが示されています。Visual Basic 2008 に直接対応するものがない場合は、代わりの項目について説明したトピックへのリンクを示します。
Visual Basic 6.0
Visual Basic 2008 で対応するもの
Appearance
新規に実装されました。詳細については、「Appearance プロパティおよび BorderStyle プロパティ (Visual Basic 6.0 ユーザー向け)」を参照してください。
AutoRedraw
新規に実装されました。詳細については、「グラフィックス (Visual Basic 6.0 ユーザー向け)」を参照してください。
BackColor
BorderStyle
FormBorderStyle
Caption
Text
ClipControls
Controls
Count
CurrentX
CurrentY
DrawMode
DrawStyle
DrawWidth
FillColor
FillStyle
Font
FontBold
FontItalic
FontName
FontSize
FontStrikethrough
FontUnderline
ForeColor
HasDC
HDC
Height
Height, Size
HelpContextID
新規に実装されました。詳細については、「ヘルプ サポート (Visual Basic 6.0 ユーザー向け)」を参照してください。
HWnd
Handle
Image
新規に実装されました。Visual Basic 6.0 の Image プロパティはビットマップへのハンドルを返しましたが、Visual Basic 2008 では画像にハンドルはありません。
Left
LinkMode
LinkTopic
対応する項目はありません。詳細については、「ダイナミック データ エクスチェンジ (Visual Basic 6.0 ユーザー向け)」を参照してください。
MaxButton
MaximizeBox
MDIChild
MdiParent
MinButton
MinimizeBox
MouseIcon
新規に実装されました。詳細については、「カスタム MousePointer を設定できない」を参照してください。
MousePointer
Cursor
定数の一覧については、「MousePointer (Visual Basic 6.0 ユーザー向け)」を参照してください。
Moveable
新規に実装されました。詳細については、「Moveable プロパティ (Visual Basic 6.0 ユーザー向け)」を参照してください。
Name
NegotiateMenus
新規に実装されました。詳細については、「Menu オブジェクト (Visual Basic 6.0 ユーザー向け)」を参照してください。
OLEDropMode
新規に実装されました。詳細については、「ドラッグ アンド ドロップ (Visual Basic 6.0 ユーザー向け)」を参照してください。
Palette
PaletteMode
新規に実装されました。詳細については、「パレット (Visual Basic 6.0 ユーザー向け)」を参照してください。
Picture
BackgroundImage
RightToLeft:
True
False
RightToLeft
Yes 列挙値
ScaleHeight
ScaleLeft
ScaleMode
ScaleTop
ScaleWidth
新規に実装されました。詳細については、「座標系 (Visual Basic 6.0 ユーザー向け)」を参照してください。
StartUpPosition:
0 – Manual
1 – CenterOwner
2 – CenterScreen
3 – Windows Default
StartPosition
Manual 列挙値
CenterParent 列挙値
CenterScreen 列挙値
WindowsDefaultLocation 列挙値
Top
WhatsThisButton
HelpButton
WhatsThisHelp
Width
Width, Size
Circle
Cls
Line
Move
SetBounds
OLEDrag
PaintPicture
Point
PopupMenu
PrintForm
新規に実装されました。詳細については、「印刷の変更点 (Visual Basic 6.0 ユーザー向け)」を参照してください。
Pset
Scale
ScaleX
ScaleY
SetFocus
Activate
Show
Show または、次のようにも指定できます。ShowDialog
TextHeight
TextWidth
ValidateControls
Validate
WhatsThisMode
ZOrder:
0 – vbBringToFront
1 - vbSendToBack
BringToFront 関数または SendToBack 関数
BringToFront
SendToBack
Activated
Click
DblClick
DoubleClick
Deactivate
DragDrop
DragOver
GotFocus
Enter
Initialize
New メソッド
LinkClose
LinkError
LinkExecute
LinkOpen
MouseDown
MouseMove
MouseUp
OLECompleteDrag
OLEDragDrop
OLEDragOver
OLEGiveFeedback
OLESetData
OLEStartDrag
QueryUnload
FormClosing
Terminate
Dispose メソッド
Unload