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 中,來回與其他應用程式切換時,也會引發 Activated 和 Deactivate 事件。
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 |
|
||
BorderStyle |
|||
Caption |
|||
ClipControls |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形。 |
||
Controls |
|
||
Count |
|
||
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 |
|
||
ForeColor |
|
||
HasDC |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形。 |
||
HDC |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形。 |
||
Height |
|
||
HelpContextID |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援。 |
||
HWnd |
|||
Image |
新實作。Visual Basic 6.0 中的 Image 屬性會將控制代碼傳回給點陣圖,但是 Visual Basic 2008 中的影像沒有控制代碼。 |
||
Left |
|
||
LinkMode LinkTopic |
沒有對等用法。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的動態資料交換。 |
||
MaxButton |
|||
MDIChild |
|
||
MinButton |
|||
MouseIcon |
新實作。如需詳細資訊,請參閱無法設定自訂 MousePointer。 |
||
MousePointer |
如需常數的清單,請參閱 Visual Basic 6.0 使用者可用的 MousePointer。 |
||
Moveable |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 Moveable 屬性。 |
||
Name |
|||
NegotiateMenus |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的功能表物件。 |
||
OLEDropMode |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作。 |
||
Palette PaletteMode |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 Palette。 |
||
Picture |
|
||
RightToLeft: True False |
Yes 列舉值 |
||
ScaleHeight ScaleLeft ScaleMode ScaleTop ScaleWidth |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的座標系統。 |
||
StartUpPosition: 0 – Manual 1 – CenterOwner 2 – CenterScreen 3 – Windows Default |
Manual 列舉值 CenterParent 列舉值 CenterScreen 列舉值 |
||
Top |
|
||
WhatsThisButton |
|
||
WhatsThisHelp |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援。 |
||
Width |
|
Form 方法
Visual Basic 6.0 |
Visual Basic 2008 對等用法 |
||
---|---|---|---|
Circle |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形。 |
||
Cls |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形。 |
||
Line |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形。 |
||
Move |
|
||
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 |
|||
Show |
|||
TextHeight |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形。 |
||
TextWidth |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的圖形。 |
||
ValidateControls |
|
||
WhatsThisMode |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援。 |
||
ZOrder: 0 – vbBringToFront 1 - vbSendToBack |
BringToFront 或 SendToBack 函式 |
Form 事件
Visual Basic 6.0 |
Visual Basic 2008 對等用法 |
||
---|---|---|---|
Activate |
|
||
Click |
|
||
DblClick |
|||
Deactivate |
|
||
DragDrop DragOver |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作。 |
||
GotFocus |
|||
Initialize |
New 方法
|
||
LinkClose LinkError LinkExecute LinkOpen |
沒有對等用法。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的動態資料交換。 |
||
MouseDown |
|
||
MouseMove |
|
||
MouseUp |
|
||
OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作。 |
||
QueryUnload |
|
||
Terminate |
Dispose 方法
|
||
Unload |
|