引用 | 編輯
troy_liaw106
2011-02-20 22:47 |
樓主
▼ |
||
|
引用 | 編輯
ebolaman
2011-02-21 21:37 |
1樓
▲ ▼ |
在 Form 的 QueryUnload 事件中加上判斷即可
使用者按下 Form 的 右上角 X 時會觸發這個事件 • 參數部分: Cancel 為是否要取消離開的動作 (某些視窗關不掉就有可能是 不管使用者怎麼點 此項都設為 1) UnloadMode 請參考 知識+ 複製程式 Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) '--------------- Specify Value ---------------- Dim HasNotSaved As Boolean '紀錄文字在儲存後 或 剛開始後 是否已被變動 HasNotSaved = True '---------------------------------------------- If HasNotSaved Then Select Case UnloadMode Case 1 To 3 'Measure of Backup '------------------- Case Else Select Case MsgBox("尚未儲存。 是否要儲存目前的變更?", vbQuestion + vbYesNoCancel + vbDefaultButton1, "這不是記事本") Case vbYes 'Save to Files Case vbNo 'Exit Directly Case vbCancel Cancel = 1 End Select '-------------------- End Select End If End Sub 以上用 HasNotSaved 模擬記事本中文字已被修改,則此項為 True 在離開時被偵測到,而 除了 UnloadMode 2~3 是不正常的關閉外(可採用備份措施) 通常都是使用者按下 X 會讓 UnloadMode = 0 而就是最內層的 Select Case … End Select 最核心的程式碼如下: 複製程式 Select Case MsgBox("尚未儲存。 是否要儲存目前的變更?", vbQuestion + vbYesNoCancel + vbDefaultButton1, "這不是記事本") Case vbYes 'Save to Files Case vbNo 'Exit Directly Case vbCancel Cancel = 1 End Select 至於快捷鍵則是 預設 就有了 x1 |