我想知道是否有方法知道是否单击了窗体窗体按钮。我知道CloseButton属性,但似乎只能启用或禁用它。当用户浏览我的应用程序时,我有表单关闭,但只有在关闭按钮时才关闭数据库。所以我需要关闭事件来区分何时通过编程关闭它或通过Windows按钮关闭用户。我可以使用布尔检查,但想知道是否有更优雅的方式。Access 2010窗体关闭按钮
此外,如果有一种方法可以完全删除按钮,而不是只是看起来丑陋,这将是惊人的,但我读了这可能是不明智的,因为这是一个Windows设置。
我想知道是否有方法知道是否单击了窗体窗体按钮。我知道CloseButton属性,但似乎只能启用或禁用它。当用户浏览我的应用程序时,我有表单关闭,但只有在关闭按钮时才关闭数据库。所以我需要关闭事件来区分何时通过编程关闭它或通过Windows按钮关闭用户。我可以使用布尔检查,但想知道是否有更优雅的方式。Access 2010窗体关闭按钮
此外,如果有一种方法可以完全删除按钮,而不是只是看起来丑陋,这将是惊人的,但我读了这可能是不明智的,因为这是一个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
@HelloWorld我意识到这是你不想要的。但是,我提供它以防其他人可能会觉得它有用。我不认为这一切都很不雅。这很有效,我认为很简单。 – HansUp 2012-08-01 19:45:08
总之,我不认为自己是一个办法,但所提供的代码HansUp是围绕工作。我禁用顶部的关闭按钮以确保数据被保存。
你是什么意思的“窗体按钮”? – HansUp 2012-08-01 18:53:30
@HansUp嗨汉斯,对不起,我有表单设置为弹出,我的意思是说,有没有办法让我检查关闭按钮是否被点击。我真的很想完全删除它并使用我自己的。但正如我所说,我听说这是不可取的。 – HelloWorld 2012-08-01 19:00:19
如果我现在明白了,我会选择你认为不雅的方式。您的自定义关闭按钮将变量设置为“True”。在'Form_Unload'处,检查该变量,如果不是'True',则取消卸载。然后只能通过您的自定义关闭按钮关闭表单。即使试图关闭Access本身也不会允许窗体关闭,并会中止Access关闭。 – HansUp 2012-08-01 19:12:39