我想知道是否有办法知道是否单击了 Windows 窗体按钮。我知道 CloseButton 属性,但您似乎只能启用或禁用它。当用户浏览我的应用程序时,我关闭了表单,但只有在按下 Windows 关闭按钮时才想关闭数据库。所以我需要关闭事件来区分我是通过编程关闭它还是用户通过 Windows 按钮关闭。我可以使用布尔检查,但想知道是否有更优雅的方式。
此外,如果有一种方法可以完全删除按钮,而不仅仅是让它看起来很难看,那将是惊人的,但我读到这可能是不明智的,因为这是一个 Windows 设置。
我想知道是否有办法知道是否单击了 Windows 窗体按钮。我知道 CloseButton 属性,但您似乎只能启用或禁用它。当用户浏览我的应用程序时,我关闭了表单,但只有在按下 Windows 关闭按钮时才想关闭数据库。所以我需要关闭事件来区分我是通过编程关闭它还是用户通过 Windows 按钮关闭。我可以使用布尔检查,但想知道是否有更优雅的方式。
此外,如果有一种方法可以完全删除按钮,而不仅仅是让它看起来很难看,那将是惊人的,但我读到这可能是不明智的,因为这是一个 Windows 设置。
这是一个表单的代码模块,其中包含一个名为cmdClose
. 表单无法关闭,除非cmdClose
单击事件。即使尝试关闭 Access 本身也不会允许表单关闭......并且会中止 Access 关闭。
Option Compare Database
Option Explicit
Private Sub cmdClose_Click()
AllowClose "close"
DoCmd.Close acForm, Me.Name
End Sub
Private Sub Form_Unload(Cancel As Integer)
If AllowClose = False Then
Cancel = True
MsgBox "close aborted"
End If
End Sub
Private Function AllowClose(Optional ByVal pClose As String) As Boolean
Static blnClosedFromCode As Boolean
If pClose = "close" Then
blnClosedFromCode = True
End If
AllowClose = blnClosedFromCode
End Function
简而言之,我不认为他们是一种方式,但 HansUp 提供的代码是一种解决方法。我禁用顶部的关闭按钮以确保保存数据。