共用方式為


Visual Basic 6.0 使用者可用的 Form 物件

更新:2007 年 11 月

Visual Basic 6.0 的 Form 物件在 Visual Basic 2008 中已由 Form 類別取代。有些屬性 (Property)、方法、事件及常數的名稱會改變,而且在某些情況下,行為方面也會有差異。

概念上的差異

Activate 和 Deactivate 事件

在 Visual Basic 6.0 中,只有在表單之間切換時,才會引發 Activate 和 Deactivate 事件。

在 Visual Basic 2008 中,來回與其他應用程式切換時,也會引發 ActivatedDeactivate 事件。

QueryUnload 事件

在 Visual Basic 6.0 中,QueryUnload 事件採用兩個引數:Cancel 和 UnloadMode。透過查詢 UnloadMode 引數,您可以判斷卸載表單的原因並於需要時加以取消。

在 Visual Basic 2008 中,QueryUnload 事件已由 FormClosing 事件取代,而且 UnloadMode 已由 CloseReason 取代。

Picture 屬性

在 Visual Basic 6.0 中,如果點陣圖小於表單,指派給 Picture 屬性的影像會顯示在表單的左上角。

在 Visual Basic 2008 中,Picture 屬性已由 BackgroundImage 屬性取代。如果指派給 BackgroundImage 屬性的影像小於表單,預設會並排顯示。

Moveable 屬性

在 Visual Basic 6.0 中,表單的 Moveable 屬性可設定為 False,以防止使用者於執行階段移動表單。Visual Basic 2008 中的 Windows Form 沒有對等屬性。

雖然大家通常將它會視為不當的使用者介面設計,但是您可以將 FormBorderStyle 屬性設定為 None,再將 ControlBox 屬性設定為 False,以便在 Visual Basic 2008 中達到類似行為。

ValidateControls 方法

在 Visual Basic 6.0 中,ValidateControls 方法可用於在關閉表單時,強制對具有焦點 (Focus) 的控制項引發 Validate 事件,如果 Validate 事件失敗,會引發錯誤。

在 Visual Basic 2008 中,ValidateControls 方法已由 Validate 方法取代,這個方法會傳回 True 或 False。

MDI 表單的滑鼠事件

在 Visual Basic 6.0 中,MDI 表單可支援滑鼠事件。而在 Visual Basic 2008 中,因為 MDI 表單已無工作區 (Client Area) 可接收滑鼠事件,所以 MDI 表單不再支援 Click、MouseDown、MouseMove 和 MouseUp 事件。

Form 物件的程式碼變更

下列範例顯示 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

Form 物件屬性、方法和事件的對等用法

下表列出 Visual Basic 6.0 的屬性、方法和事件,以及其 Visual Basic 2008 的屬性。並未列出具有相同名稱和行為的屬性、方法和事件。在適用的情況下,常數會在屬性或方法之下縮排。除非另外註明,否則所有 Visual Basic 2008 列舉型別 (Enumeration) 都會對應到 System.Windows.Forms 命名空間 (Namespace)。

將視需要提供連結至解釋行為差異的主題。若 Visual Basic 2008 中沒有直接的對等用法,則提供連結至替代的主題。

Form 屬性 (Property)

Visual Basic 6.0

Visual Basic 2008 對等用法

Appearance

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 Appearance 和 BorderStyle 屬性

AutoRedraw

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

BackColor

BackColor

注意事項:

在 Visual Basic 2008 中會以不同方式處理色彩。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的色彩行為

BorderStyle

FormBorderStyle

Caption

Text

ClipControls

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

Controls

Controls

注意事項:

Visual Basic 2008 中的 Controls 集合有些差異。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 Controls 集合

Count

Count

注意事項:

Visual Basic 2008 中的 Controls 集合有些差異。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 Windows Form 控制項

CurrentX

CurrentY

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

DrawMode

DrawStyle

DrawWidth

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

FillColor

FillStyle

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

Font

FontBold

FontItalic

FontName

FontSize

FontStrikethrough

FontUnderline

Font

注意事項:

在 Visual Basic 2008 中會以不同方式處理字型。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的字型物件

ForeColor

ForeColor

注意事項:

在 Visual Basic 2008 中會以不同方式處理色彩。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的色彩行為

HasDC

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

HDC

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

Height

Height, Size

注意事項:

在 Visual Basic 2008 中會以不同方式處理座標。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的座標系統

HelpContextID

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援

HWnd

Handle

Image

新實作。Visual Basic 6.0 中的 Image 屬性會將控制代碼傳回給點陣圖,但是 Visual Basic 2008 中的影像沒有控制代碼。

Left

Left

注意事項:

在 Visual Basic 2008 中會以不同方式處理座標。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的座標系統

LinkMode

LinkTopic

沒有對等用法。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的動態資料交換

MaxButton

MaximizeBox

MDIChild

MdiParent

注意事項:

MDI 行為在 Visual Basic 2008 中不同。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 MDI

MinButton

MinimizeBox

MouseIcon

新實作。如需詳細資訊,請參閱無法設定自訂 MousePointer

MousePointer

Cursor

如需常數的清單,請參閱 Visual Basic 6.0 使用者可用的 MousePointer

Moveable

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 Moveable 屬性

Name

Name

NegotiateMenus

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的功能表物件

OLEDropMode

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作

Palette

PaletteMode

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 Palette

Picture

BackgroundImage

注意事項:

在 Visual Basic 6.0 中,Picture 是顯示於表單的左上角;而在 Visual Basic 2008 中,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

Top

注意事項:

在 Visual Basic 2008 中會以不同方式處理座標。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的座標系統

WhatsThisButton

HelpButton

注意事項:

在 Visual Basic 2008 中有一些說明行為的差異。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援

WhatsThisHelp

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援

Width

Width, Size

注意事項:

在 Visual Basic 2008 中會以不同方式處理座標。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的座標系統

Form 方法

Visual Basic 6.0

Visual Basic 2008 對等用法

Circle

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

Cls

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

Line

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

Move

SetBounds

注意事項:

在 Visual Basic 2008 中會以不同方式處理座標。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的座標系統

OLEDrag

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作

PaintPicture

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

Point

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

PopupMenu

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的功能表物件

PrintForm

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可進行的列印變更

Pset

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

Scale

ScaleX

ScaleY

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的座標系統

SetFocus

Activate

Show

ShowShowDialog

TextHeight

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

TextWidth

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形

ValidateControls

Validate

注意事項:

Validate 方法會傳回 True 或 False。如果驗證失敗,ValidateControls 會引發錯誤。

WhatsThisMode

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援

ZOrder:

 0 – vbBringToFront

 1 - vbSendToBack

BringToFrontSendToBack 函式

 BringToFront

 SendToBack

Form 事件

Visual Basic 6.0

Visual Basic 2008 對等用法

Activate

Activated

注意事項:

在 Visual Basic 6.0 中,只有在應用程式的表單之間切換時,才會引發 Activate 事件;而在 Visual Basic 2008 中,從其他應用程式切換時也會引發 Activated 事件。

Click

Click

注意事項:

MDI 表單不支援 Click 事件。

DblClick

DoubleClick

Deactivate

Deactivate

注意事項:

在 Visual Basic 6.0 中,Deactivate 事件僅於應用程式的表單之間切換時引發;而在 Visual Basic 2008 中,切換到其他應用程式時也會引發這個事件。

DragDrop

DragOver

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作

GotFocus

Enter

Initialize

New 方法

注意事項:

New 方法的行為與 Initialize 事件不相同。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的表單工作

LinkClose

LinkError

LinkExecute

LinkOpen

沒有對等用法。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的動態資料交換

MouseDown

MouseDown

注意事項:

MDI 表單不支援 MouseDown 事件。

MouseMove

MouseMove

注意事項:

MDI 表單不支援 MouseMove 事件。

MouseUp

MouseUp

注意事項:

MDI 表單不支援 MouseUp 事件。

OLECompleteDrag

OLEDragDrop

OLEDragOver

OLEGiveFeedback

OLESetData

OLEStartDrag

新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作

QueryUnload

FormClosing

注意事項:

在 Visual Basic 6.0 中,QueryUnload 採用兩個引數:Cancel 和 UnloadMode。在 Visual Basic 2008 中,Cancel 已由 Cancel 取代,而 UnloadMode 則已由 CloseReason 取代。

Terminate

Dispose 方法

注意事項:

Dispose 方法的行為與 Terminate 事件不同。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的表單事件

Unload

FormClosing

注意事項:

FormClosing 事件的行為和 Unload 事件不同。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的表單事件

請參閱

概念

Visual Basic 6.0 使用者可用的表單工作

其他資源

Windows Form