如何使点击右上角的关闭按钮时不执行unload事件

解决方案 »

  1.   

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If UnloadMode = vbFormControlMenu Then Cancel = True
    End Sub
      

  2.   

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        Cancel = True
    End Sub
      

  3.   

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        If UnloadMode = vbFormControlMenu Then Cancel = True
    End Subunloadmode 参数返回下列值:常数 值 描述 
    vbFormControlMenu 0 用户从窗体上的“控件”菜单中选择“关闭”指令。 
    vbFormCode 1 Unload 语句被代码调用。 
    vbAppWindows 2 当前 Microsoft Windows 操作环境会话结束。 
    vbAppTaskManager 3 Microsoft Windows 任务管理器正在关闭应用程序。 
    vbFormMDIForm 4 MDI 子窗体正在关闭,因为 MDI 窗体正在关闭。 
    vbFormOwner 5 因为窗体的所有者正在关闭,所以窗体也在关闭。 
      

  4.   

    Private Sub Form_Unload(Cancel As Integer)
        Cancel = 1
    End Sub
      

  5.   

    同意flyingscv(zlj) ,tiaozaodejia(跳蚤)说得不完整
    首先得判断是否是点击窗体右上角的关闭按钮出发的query_unload事件,如果是则设置cancel=true,程序就不会执行UNLOAD事件
      

  6.   

    干脆屏蔽它…………Option ExplicitPrivate Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As LongPrivate Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As LongPrivate Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As LongPrivate Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As LongPrivate Const MF_BYPOSITION = &H400&Private Const MF_REMOVE = &H1000&Private Sub DisableX()
         Dim hMenu As Long
         Dim nCount As Long
         hMenu = GetSystemMenu(Me.hwnd, 0)
         nCount = GetMenuItemCount(hMenu)
         
         Call RemoveMenu(hMenu, nCount - 1, MF_REMOVE Or MF_BYPOSITION)
         Call RemoveMenu(hMenu, nCount - 2, MF_REMOVE Or MF_BYPOSITION)
        
    End SubPrivate Sub Form_Load()
         DisableX
    End Sub
      

  7.   

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        Cancel = Not (CBool(UnloadMode))
    End Sub