[英]VB6 When closing the Parent form do unload queryunload or terminate events fire in Child Forms
我之前已經問過這個問題,但我一定不是很清楚,因為據我所知,答案原來是不正確的。
我有一個VB6應用程序..它具有打開窗體和對話框的主菜單(不是我不認為的MDI)
我想在應用程序關閉時保存所有打開的窗體或對話框的位置,以便下次我打開應用程序時,位置將被恢復。
我希望當我關閉應用程序時,任何queryUnload,unload,terminate都會在“子”窗口或對話框中觸發,並且我可以保存它們的位置..但似乎沒有觸發。
我在上述所有事件上都設置了斷點,但是當我關閉該應用程序時,什么也沒有遇到。
VB6不是我平常的演出..所以我可能在想太多.net ..
有沒有辦法可以在VB6中完成..
編輯:所以,如果我單擊右上角的關閉叉號,則“結束”應用程序。 VB6中是否有一種方法可以編輯此行為,以便引起正常關閉?
這3個事件均會觸發,但您期望時可能不會觸發Terminate事件。
創建一個由1個MDI表單,1個MDI子表單,1個普通表單組成的測試項目,並添加以下代碼:
MDI表格:
'MDI form : name=MDIForm1
Option Explicit
Private Sub MDIForm_Click()
End
End Sub
Private Sub MDIForm_Load()
Form1.Show
Form2.Show vbModeless, Me
WindowState = vbMaximized
End Sub
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
MsgBox "MDI form QueryUnload event"
End Sub
Private Sub MDIForm_Terminate()
MsgBox "MDI form Terminate event"
End Sub
Private Sub MDIForm_Unload(Cancel As Integer)
MsgBox "MDI form Unload event"
End Sub
MDI子:
'1 form: name=Form1 MDIChild=true
Option Explicit
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
MsgBox "MDI child QueryUnload event"
End Sub
Private Sub Form_Terminate()
MsgBox "MDI child Terminate event"
End Sub
Private Sub Form_Unload(Cancel As Integer)
MsgBox "MDI child Unload event"
End Sub
正常形式:
'1 form: name=Form2
Option Explicit
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
MsgBox "Form2 QueryUnload event"
End Sub
Private Sub Form_Terminate()
MsgBox "Form2 Terminate event"
End Sub
Private Sub Form_Unload(Cancel As Integer)
MsgBox "Form2 Unload event"
End Sub
您將看到QueryUnload和Unload事件被觸發(按此順序),但是當您關閉MDI表單時,將觸發Terminate事件。
當您單擊MDI表單的背景時,將調用End
並且不會觸發任何事件
“兒童”表格確實會收到通常的事件。 請注意,在Form_QueryUnload
, UnloadMode
參數為vbFormOwner
。
“子”表單與明顯的所有者表單一起顯示,如下所示:
'--- using global references
Form2.Show vbModal, Form1
Form3.Show , Form1 '--- Form3 is modeless
'--- using instances
With New Form2
.Show vbModal, oOwnerForm
End With
With New Form3
.Show , oOwnerForm
End With
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.