请教个思路,如何在窗体中做一个标志,用户只要进行过编辑,退出窗体时就会提示保存?
是这样的:
窗体上有很多文本框,用户在文本框中对记录字段进行修改后,有时忘了保存就退出窗体,可是我又不想设计成只要退出窗本就自动保存,[因为这样容易把错误信息保存了],我只想做一个提省的功能.当用户什么都不改,只做查询时什么也不提示.
可是这个标记如何定呀?真想不出思路.
请教各位老大了.
是这样的:
窗体上有很多文本框,用户在文本框中对记录字段进行修改后,有时忘了保存就退出窗体,可是我又不想设计成只要退出窗本就自动保存,[因为这样容易把错误信息保存了],我只想做一个提省的功能.当用户什么都不改,只做查询时什么也不提示.
可是这个标记如何定呀?真想不出思路.
请教各位老大了.
解决方案 »
- vb 如何解压缩linux 中用tar命令压缩的 gzip文件 后缀.gz
- VBA的textbox问题
- ----------如何得到一个MP3文件的时间
- 求助!!!!!!!!!!!!!!!!!!!!给分!!!!!!!给分
- 找不到指定的SQl Server
- cwm545(罪人) ,_1_(到jinesc.6600.org来找我) 来领分!
- 如何使指针在label上时变成小手形状?谢谢
- 请问如何可以屏蔽win2000中的两个win键, 有虚拟键表的兄弟能给我发一份吗?
- API函数TextOut的用法
- 如何屏蔽串口,使它不能接收消息
- 急问:如果取得本地IIS的LOG路径
- DB的值怎样给到动态数组呀???(在线等.......)
Sub form_load()
Saved= True
end sub
...
只要你的程序中任何一个地方有修改动作就设: Saved = False
...然后在退出的时候检查该变量:
Sub Form_unload(cancel as long)
Dim I as long
if Not Saved then
I = msgbox("do you want to save it?",,vbyesnocancel)
select case I
case vbyes: 保存
case vbno: 什么也不干
case vbcancel: cancel = 1 '不退出程序
end select
end if
end sub
是否看明白了?很简单吧
Option Explicit
Dim isSave As Boolean '窗体需要保存标志
Private Sub Form_Unload(Cancel As Integer)
Dim i As Integer
For i = 0 To 9 '假设共10个文本框 (文本框数组)
If Text1(i).DataChanged Then '只要有1个文本框内容被修改过了
isSave = True '需要保存
Exit For
End If
Next i
If isSave Then
If MsgBox("尚未保存,真的要退出吗?", vbOKCancel + vbInformation, "提示信息") = vbCancel Then
Cancel = True
End If
End If
End Sub
所以判断文本框的值是否改变是一个很不好弄的问题。