我想在Unload事件提示用户是否要取消升级
如果用户选择否程序继续执行 Private Sub Form_Unload(Cancel As Integer)
     If isok = 0 Then
        If MsgBox("是否取消本次版本的升级?", vbYesNo + vbQuestion, "飞腾浏览器(FlyIe)") = vbYes Then
           Call cIni.WriteKey("General", "ver", ver)
           
            '直接运行程序
            Shell AppPath & "FlyIe.exe", vbNormalFocu
            Exit Sub
            End
        Else
            Cancel = False
           
        End If
     Else
             '直接运行程序
            Shell AppPath & "FlyIe.exe", vbNormalFocu
            Exit Sub
            End
     End IfEnd Sub

解决方案 »

  1.   

    我写了 Cancel = False 没效果怎么样在 Unload事件提示用户是否要取消升级 
    用户选择否的时候让程序继续执行? 
      

  2.   

    用query_unload事件,设置cancel标志
      

  3.   

    Option Explicit
        Dim isok As Boolean
    Private Sub Form_Unload(Cancel As Integer)
        If isok = 0 Then
            If MsgBox("是否取消本次版本的升级?", vbYesNo + vbQuestion, "飞腾浏览器(FlyIe)") = vbYes Then
                Call cIni.WriteKey("General", "ver", ver)
                '直接运行程序
                Shell AppPath & "FlyIe.exe", vbNormalFocu
                Exit Sub
                End
            Else
                Cancel = -1
            End If
         Else
            Shell AppPath & "FlyIe.exe", vbNormalFocu
            Exit Sub
            End
         End If
    End Sub
      

  4.   

    Option Explicit
        Dim isok As Boolean
    Private Sub Form_Unload(Cancel As Integer)
        If isok = 0 Then
            If MsgBox("是否取消本次版本的升级?", vbYesNo + vbQuestion, "飞腾浏览器(FlyIe)") = vbYes Then
                Call cIni.WriteKey("General", "ver", ver)
                '直接运行程序
                Shell App.Path & "FlyIe.exe", vbNormalFocu
                End
            Else
                Print "本次版本的升级"
                '写执行本次版本的升级
                Cancel = -1
            End If
         End If
    End Sub
      

  5.   

    Dim rtn&  
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)  
     Cancel = 1  
     rtn = MsgBox("确定要退出程序吗?", vbYesNo, "菜鸟多媒体")  
     If rtn = 6 Then End  
    End Sub 
      

  6.   

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
     Cancel = 1
     If MsgBox("ÊÇ·ñÈ¡Ïû±¾´Î°æ±¾µÄÉý¼¶?", vbYesNo + vbQuestion, "·ÉÌÚä¯ÀÀÆ÷(FlyIe)") = vbYes Then End
    End Sub
      

  7.   


    拦截Form_QueryUnload事件是正解,unload事件触发时很多对象已经被回收了
      

  8.   

    Option Explicit
    Private isok As BooleanPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
         'ver,AppPath都要定义
         '还有你把vbNormalFocus写成了vbNormalFocu,最后掉了一个s
         '还有你这个标志isok有什么意义我不太明白?
         On Error Resume Next
         Cancel = 1
         If isok = 0 Then
            If MsgBox("是否取消本次版本的升级?", vbYesNo + vbQuestion, "飞腾浏览器(FlyIe)") = vbYes Then
               Call cIni.WriteKey("General", "ver", ver)
               '直接运行程序
               Shell AppPath & "FlyIe.exe", vbNormalFocus
               'Exit Sub
               End
            Else
                Cancel = False
                
            End If
         Else
              '直接运行程序
              Shell AppPath & "FlyIe.exe", vbNormalFocus
              'Exit Sub
              End
         End If
         End Sub