1

我想知道是否有办法知道是否单击了 Windows 窗体按钮。我知道 CloseButton 属性,但您似乎只能启用或禁用它。当用户浏览我的应用程序时,我关闭了表单,但只有在按下 Windows 关闭按钮时才想关闭数据库。所以我需要关闭事件来区分我是通过编程关闭它还是用户通过 Windows 按钮关闭。我可以使用布尔检查,但想知道是否有更优雅的方式。

此外,如果有一种方法可以完全删除按钮,而不仅仅是让它看起来很难看,那将是惊人的,但我读到这可能是不明智的,因为这是一个 Windows 设置。

4

2 回答 2

1

这是一个表单的代码模块,其中包含一个名为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
于 2012-08-01T19:42:54.207 回答
0

简而言之,我不认为他们是一种方式,但 HansUp 提供的代码是一种解决方法。我禁用顶部的关闭按钮以确保保存数据。

于 2014-01-01T20:05:10.107 回答