如何不让用户点击窗口的关闭按钮? 或者让用户点击关闭按钮窗口隐藏而不是关闭

时间:2021-06-25 23:50:05
如何不让用户点击窗口的关闭按钮? 或者让用户点击关闭按钮窗口隐藏而不是关闭

11 个解决方案

#1


Private Sub Form_Unload(Cancel As Integer)
    Me.Hide
    Cancel = -1
End Sub

#2


Unload 事件
      

当窗体从屏幕上删除时发生。当那个窗体被重新加载时,它的所有控件的内容均被重新初始化。当使用在 Control 菜单中的 Close 命令或 Unload 语句关闭该窗体时,此事件被触发。

语法

Private Sub object_Unload(cancel As Integer)

Unload 事件语法包括下列部分:

部分 描述 
Object 一个对象表达式,其值是“应用于”列表中的一个对象。 
Cancel 一个整数,用来确定窗体是否从屏幕删除。如果 cancel 为 0,则窗体被删除。将 cancel 设置为任何一个非零的值可防止窗体被删除。 


说明

将 cancel 设置为任何非零的值可防止窗体被删除,但不能阻止其它事件,诸如从 Microsoft Windows 操作环境中退出等。可用 QueryUnload 事件阻止从 Windows 中的退出。

在窗体被卸载时,可用一个 Unload 事件过程来确认窗体是否应被卸载或用来指定想要发生的操作。也可在其中包括任何在关闭该窗体时也许需要的验证代码或将其中的数据储存到一个文件中。

QueryUnload 事件在 Unload 事件之前发生。Unload 事件在 Terminate 事件之前发生。

使用 Unload 语句或在一个窗体的“控件”菜单上选择“关闭”命令,用“任务窗口”列表上的“结束任务”按钮退出应用程序,在当前窗体为其一个子窗体的情况下关闭该 MDI 窗体,或当应用程序正在运行的时候退出 Microsoft Windows 操作环境等情况都可引发 Unload 事件。

#3


Private Sub Form_Unload(Cancel As Integer)
Me.Hide
Cancel = 1
End Sub
就这么简单了!

#4


建议你的程序还要在任务栏中放置好图标或设好热键呼出,除非你的程序以后不希望显示窗体了。

#5


加一个判断标志
这样只有点击自定义的按钮时才通出
Private Sub Form_Unload(Cancel As Integer)
if .....then
    Me.Hide
    Cancel = -1
end if
End Sub

#6


Private Sub Form_Unload(Cancel As Integer)
Cancel = 1: MsgBox "点了也没用~~"
End Sub

#7


获取窗口的系统菜单,将“关闭”项隐藏或禁用
窗体上的 关闭 按钮也会随之 隐藏或禁用

#8


这种方法对所有关闭的情况都有效,我想执行unload me 时可以关闭窗口, 
还有一个缺点就是,如果这样写代码,我连打开它的父窗口也关闭不了,
父窗口的语句是form2.show 1
有什么方法解决?
Private Sub Form2_Unload(Cancel As Integer)
    Me.Hide
    Cancel = -1
End Sub

#9


up
原来cancel<>0就可以取消啊!哈哈,知道了,偶一直以为只有1才能取消

#10


这种方法对所有关闭的情况都有效,我想执行unload me 时可以关闭窗口,

设置一变量来判断是不是 unload me 

Option Explicit

Public bUnload As Boolean



Private Sub Command1_Click()
    bUnload = True
    Unload Me
End Sub

Private Sub Form_Load()
    bUnload = False
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If bUnload = False Then
        Me.Hide
        Cancel = -1
    End If
End Sub

#11


在QueryUnload里加入代码就可以了!
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If UnloadMode <> 1 Then Cancel = 1
End Sub

#1


Private Sub Form_Unload(Cancel As Integer)
    Me.Hide
    Cancel = -1
End Sub

#2


Unload 事件
      

当窗体从屏幕上删除时发生。当那个窗体被重新加载时,它的所有控件的内容均被重新初始化。当使用在 Control 菜单中的 Close 命令或 Unload 语句关闭该窗体时,此事件被触发。

语法

Private Sub object_Unload(cancel As Integer)

Unload 事件语法包括下列部分:

部分 描述 
Object 一个对象表达式,其值是“应用于”列表中的一个对象。 
Cancel 一个整数,用来确定窗体是否从屏幕删除。如果 cancel 为 0,则窗体被删除。将 cancel 设置为任何一个非零的值可防止窗体被删除。 


说明

将 cancel 设置为任何非零的值可防止窗体被删除,但不能阻止其它事件,诸如从 Microsoft Windows 操作环境中退出等。可用 QueryUnload 事件阻止从 Windows 中的退出。

在窗体被卸载时,可用一个 Unload 事件过程来确认窗体是否应被卸载或用来指定想要发生的操作。也可在其中包括任何在关闭该窗体时也许需要的验证代码或将其中的数据储存到一个文件中。

QueryUnload 事件在 Unload 事件之前发生。Unload 事件在 Terminate 事件之前发生。

使用 Unload 语句或在一个窗体的“控件”菜单上选择“关闭”命令,用“任务窗口”列表上的“结束任务”按钮退出应用程序,在当前窗体为其一个子窗体的情况下关闭该 MDI 窗体,或当应用程序正在运行的时候退出 Microsoft Windows 操作环境等情况都可引发 Unload 事件。

#3


Private Sub Form_Unload(Cancel As Integer)
Me.Hide
Cancel = 1
End Sub
就这么简单了!

#4


建议你的程序还要在任务栏中放置好图标或设好热键呼出,除非你的程序以后不希望显示窗体了。

#5


加一个判断标志
这样只有点击自定义的按钮时才通出
Private Sub Form_Unload(Cancel As Integer)
if .....then
    Me.Hide
    Cancel = -1
end if
End Sub

#6


Private Sub Form_Unload(Cancel As Integer)
Cancel = 1: MsgBox "点了也没用~~"
End Sub

#7


获取窗口的系统菜单,将“关闭”项隐藏或禁用
窗体上的 关闭 按钮也会随之 隐藏或禁用

#8


这种方法对所有关闭的情况都有效,我想执行unload me 时可以关闭窗口, 
还有一个缺点就是,如果这样写代码,我连打开它的父窗口也关闭不了,
父窗口的语句是form2.show 1
有什么方法解决?
Private Sub Form2_Unload(Cancel As Integer)
    Me.Hide
    Cancel = -1
End Sub

#9


up
原来cancel<>0就可以取消啊!哈哈,知道了,偶一直以为只有1才能取消

#10


这种方法对所有关闭的情况都有效,我想执行unload me 时可以关闭窗口,

设置一变量来判断是不是 unload me 

Option Explicit

Public bUnload As Boolean



Private Sub Command1_Click()
    bUnload = True
    Unload Me
End Sub

Private Sub Form_Load()
    bUnload = False
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If bUnload = False Then
        Me.Hide
        Cancel = -1
    End If
End Sub

#11


在QueryUnload里加入代码就可以了!
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If UnloadMode <> 1 Then Cancel = 1
End Sub