引用 | 编辑
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 |