我想知道是否有办法知道是否点击了Windows表单按钮。我知道CloseButton属性,但似乎你只能启用或禁用它。当用户浏览我的应用程序时,我会关闭表单,但只有在按下窗口关闭按钮时才想关闭数据库。所以我需要close事件来区分我通过编程关闭它或用户关闭通过Windows按钮。我可以使用布尔检查,但想知道是否有更优雅的方式。
此外,如果有一种方法可以完全删除按钮,而不仅仅是让它看起来很丑陋,这将是惊人的,但我读到这可能是不明智的,因为这是一个Windows设置。
答案 0 :(得分: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
答案 1 :(得分:0)
简而言之,我不认为他们是一种方式,但HansUp提供的代码是一种解决方法。我禁用了顶部的关闭按钮以确保保存数据。