我用VBA创建了一些form给用户作某些输入,请问我怎么使当用户点窗口右上角的交叉关闭时让它检查用户时候已经保存了输入。
我要求msgbox有是,否,取消三个按钮,点yes则则保存退出,no则直接退出,取消则回到原来的form,怎么实现?
也就是说我该怎么写这事件的触发函数??
我要求msgbox有是,否,取消三个按钮,点yes则则保存退出,no则直接退出,取消则回到原来的form,怎么实现?
也就是说我该怎么写这事件的触发函数??
解决方案 »
- VB中水晶报表中数据的更新
- VB如何实现外部程序最小化(以QQ2007正式版为例)?
- 怎么得到一个文件在光盘上的所在扇区?
- Picturebox控件里怎么打印字符串?有没有print这个方法?
- 急救!!1
- 散分,大家快来领赏!
- 请 陨落雕 和 rainstormmaster(rainstormmaster) 进来接分(非常感谢你的帮助!)
- 几种**Grid控件都可以合并单元格,但不能...?
- 100分:如何用代码添加新的窗体?
- 在NT中调用rasdial
- 对于日期字符串的解释上,开发时如何保证不同机器上运行时的兼容性呢?
- 在主窗体中弹出一个查询窗体,然后返回主窗体一个字符串,如何实现呢?(即两个窗体间如何传递信息)
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "请保存文件!" ' 定义信息。
Style = vbYesNoCancel + vbCritical + vbDefaultButton1 ' 定义按钮。
Title = "保存文件!" ' 定义标题。
Help = "DEMO.HLP" ' 定义帮助文件。
Ctxt = 1000 ' 定义标题
' 上下文。
' 显示信息。
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' 用户按下“是”。
MyString = "Yes" ' 完成某操作。
'写保存文件代码
MsgBox "OK"
ElseIf Response = vbNo Then ' 用户按下“否”。
MyString = "No" ' 完成某操作。
End
Else
Cancel = -1
End If
End Sub
你用Unload不行,点交叉没反应,要用UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)再添加你的代码就行了,谢谢
修改后:Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Do you want to Save??"
Style = vbYesNoCancel + vbQuestion + vbDefaultButton1
Title = "Save Data"
Help = "DEMO.HLP"
Ctxt = 1000
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
MyString = "Yes"
Cancel = -1
SaveBtn_Click
ElseIf Response = vbNo Then
MyString = "No"
End
Else
Cancel = -1
End If
End Sub