簡體   English   中英

在 VB6 中形成關閉事件?

[英]Form closing Event in VB6?

只是想問一下, VB6 中是否有等效的 form_closing 事件? (.bas)。 我問的原因是如果有一個打開的子窗口,我想防止先關閉應用程序。

像這樣的東西。

Private Sub MainForm_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

  If hasSubWindow Then
    MessageBox.Show("You currently have active sub-window(s)")
    e.Cancel = false
  End If

End Sub

共有三個事件: Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)Form_Unload(Cancel As Integer)Form_Terminate()

Form_QueryUnloadForm_Unload之前觸發,其中將Cancel設置為 0 以外的任何值都會取消卸載,而UnloadMode指示卸載事件的原因。

請參閱https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/aa445536(v=vs.60)?redirectedfrom=MSDN

Form_Unload采用 integer,如果將其設置為 0 以外的任何值,則會取消卸載。

Unload 事件過程是程序員通常放置清理代碼的地方。 Unload 事件在 QueryUnload 事件之后觸發。 Unload 事件過程采用單個參數,即 Cancel 參數。 Unload 的 Cancel 參數與 QueryUnload 的 Cancel 參數作用相同。

Terminate 事件在窗體實例完全卸載並且所有窗體變量都設置為 Nothing 時發生。 只有在 Unload 事件過程期間或之后在代碼中將窗體顯式設置為 Nothing 時,Terminate 事件才會發生。

資料來源: https://www.freetutes.com/learn-vb6-advanced/lesson6/p5.html

在您的情況下,您可能希望將代碼放入Form_QueryUnloadForm_Unload中以檢查是否有任何其他打開的 forms。

Private Sub Form_Unload(Cancel As Integer)
    If hasSubWindow = True Then
         MsgBox "You currently have active sub-window(s)", vbInformation, "Confirm"
        Cancel = 1
    End if
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM