各位老师,这个功能如何实现:如果对文本框等控件进行过修改,关闭窗体是会提示是否保存?[关键是如何判断出用户进行过修改却没有保存?]
各位老师,这个功能如何实现:如果对文本框等控件进行过修改,关闭窗体是会提示是否保存?
一个窗体是对记录进行编辑修改等操作。用户修改后要按下保存按钮进行保存,后台是sql server 2000,用户抱怨,如果忘点保存按扭就坏了。要求增加一个自动保存的功能,可是我说没有办法实现,因为保存操作必须要用操作者进行确认,可是我回来想想,用户说的也有道理,所以想增加一个功能,在窗口退出时,如果用户进行过修改但没有保存,就增加一个提示,谢询问是否保存,但是关键是如何判断用户是否进行过修改却没有保存呢?如果每次关闭窗口时都提示,用户更是有意见。所以想听听各位老师的高见。
谢谢先。
问题点数:10、回复次数:10Top
1 楼fishmans(金脚指)回复于 2006-05-03 19:52:39 得分 2
加个全局变量,在change事件里赋值为true,做保存操作时赋值为falseTop
2 楼elovenana(秋水晓寒)回复于 2006-05-03 21:30:49 得分 2
这个问题,不难实现,举个例子,你注意到 dreamweaver 编辑文件的时候,只要你动一下,就会出现一个 “文件名*”,就表示,已经在编辑状态了!你也可以试一下呀,改变一下,你的标题栏,如果最后有一个"*",就表示,在编辑而且没有保存的状态;
不知道你能听明白没有!Top
3 楼yhlqccnmmt(厚德载物)回复于 2006-05-03 23:16:23 得分 0
加个全局变量,在change事件里赋值为true,做保存操作时赋值为false
--------------------
是不是要检测每一个控件呀?如果值有变化就说明修改过了。对吗?Top
4 楼of123()回复于 2006-05-03 23:20:53 得分 2
是的。窗体级变量就可以了。
在编辑控件内容更改后 = True.
在窗体启动、记录集显示刷新和记录保存后 = False.Top
5 楼guoguo1982(蝈蝈)回复于 2006-05-04 20:08:13 得分 0
学习Top
6 楼wenguoli(寻找同路人)回复于 2006-05-04 20:19:42 得分 1
最安全的方法就和office一样,打开文件时就创建一个副本,关闭时就比较这个文件.若是相同则没有改,否则.....Top
7 楼yhlqccnmmt(厚德载物)回复于 2006-05-04 21:54:59 得分 0
最安全的方法就和office一样,打开文件时就创建一个副本,关闭时就比较这个文件.若是相同则没有改,否则.....
---------------------
好象不是这样的,word中,你打个空格再删了,关闭时也提示保存,其实内容一点没变。Top
8 楼WallesCai(女人之美,在于蠢得无怨无悔,男人之美,在于撒谎撒得白日见鬼)回复于 2006-05-05 02:36:04 得分 2
我的方法和一楼,二楼,四楼说的一样:
建立一个全局变量(窗体级也好模块级也好都一样)
写个大概框架给楼主看看:
OPTIONAL EXPLICIT
DIM SAVED AS BOOLEAN
...
SUB TEXT_CHANGE()
SAVED = FAUSE '只要一改,就是“未保存”了
END SUB
SUB SAVE()
... '保存文件
SAVED = TRUE '保存了,当然就是“已保存”咯
END SUB
SUB FORM_UNLOAD(CANCEL AS LONG)
DIM A AS LONG
IF SAVED THEN END SUB '保存了,继续退出。
A = MSGBOX("文件未保存,要保存么?",,VBYESNOCANCEL)
SELECT CASE A
CASE VBYES: CALL SAVE
CASE VBNO: '什么也不干
CASE VBCANCEL: CANCEL = -1
END SELCET
END SUB
大概就是这么个样子,楼主仔细看看就明白了,中间的功能语句自己添上去。
Top
9 楼vbfunner(超级糖醋五花大瘦肉)回复于 2006-05-05 15:38:51 得分 0
正解了。
就是这个样子做的。Top
10 楼qyxfree()回复于 2006-05-05 15:48:17 得分 1
你可以将text中的内容和数据库的记录比较,如果text中的内容和库中记录不一样就提示保存。Top




