当前位置:学海荡舟 -> 电脑乐园 -> 窗体卸载时弹出确认对话框




  趣 味 程 序
--趣味程序源码注解--窗体卸载时弹出确认对话框--

  有时我们希望程序在被关闭前能弹出确认信息,在按下确认按钮后才退出程序。这在一些编辑工具中十分常见,例如在退出WORD时,它会询问是否保存文件,这样就能避免丢失文件所造成的损失。本例就是在VB中实现此功能的方法。

  为了学习方便,提供的源码已经作了详细的中文注释,看看源码框中的代码:


(源程序下载)

  我们先来看看WINDOWS下程序退出的步骤:当程序执行到 End 语句或是按下了 Alt+F4 组合键或是右上角“X”时,系统会先询问Sub Form_QueryUnload()接着询问Sub Form_Unload()。如果询问时发现 Cancel 为0(默认为0)才会退出程序。于是我们就得到了避免直接关闭程序的基本编程思路,即在Sub Form_Unload()中把Cancel设为非0的值。

  其中Sub Form_Unload()的语法如下:

  Sub Form_Unload()的完整的语句为:Private Sub Form_Unload(Cancel As Integer),其中的参数Cancel是当系统询问时程序传递给系统的值,它的默认值为0,如果我们不在程序中改变它的值,询问后窗体便自动关闭。为了实现确认后才关闭,我们可在程序中写入下面代码:

   Private Sub Form_Unload(Cancel As Integer)
   Dim IntR As Integer
   IntR = MsgBox("确认要退出程序吗?", vbYesNo, "退出确认")
   If IntR = vbNo Then Cancel = -1 '
   End Sub

  这样当我们点击“X”或使用“End”语句关闭窗体时,便会出现确认对话框,只有选择“确定”才会关闭。然而Form_Unload的作用范围是有限的,如果直接退出WINDOWS操作系统,采用上面方法便失效了。为了避免这种情况的发生,我们采用Form_QueryUnload会更加保险一些,可以在程序中加入如下代码:

   Private Sub Form_QueryUnload(Cancel As Integer)
   Dim IntR As Integer
   IntR = MsgBox("确认要退出程序吗?", vbYesNo, "退出确认")
   If IntR = vbNo Then Cancel = -1 '
   End Sub

  这样就能保证万无一失了。

相关链接:   看实例学VB