1

Windowsフォームボタンがクリックされたかどうかを知る方法があるかどうか疑問に思っていました。CloseButton プロパティは知っていますが、有効または無効にすることしかできないようです。ユーザーがアプリをナビゲートするとフォームが閉じますが、ウィンドウの閉じるボタンが押された場合にのみデータベースを閉じたいです。したがって、プログラミングで閉じるか、ユーザーがWindowsボタンで閉じるかを区別するために、閉じるイベントが必要です。ブールチェックを使用できましたが、もっとエレガントな方法があるかどうか疑問に思っていました。

また、ボタンを完全に削除してグレー表示にするだけでなく、見栄えを良くする方法があれば素晴らしいですが、これはWindowsの設定であるため、これは賢明ではない可能性があることを読みました.

4

2 に答える 2

1

という名前のコマンド ボタンを含むフォームのコード モジュールを次に示しますcmdClosecmdCloseクリックイベント以外ではフォームを閉じることができません。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 に答える