CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

各位老师,这个功能如何实现:如果对文本框等控件进行过修改,关闭窗体是会提示是否保存?[关键是如何判断出用户进行过修改却没有保存?]

楼主yhlqccnmmt(厚德载物)2006-05-03 19:21:48 在 VB / 基础类 提问

各位老师,这个功能如何实现:如果对文本框等控件进行过修改,关闭窗体是会提示是否保存?  
  一个窗体是对记录进行编辑修改等操作。用户修改后要按下保存按钮进行保存,后台是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

相关问题

关键词

得分解答快速导航

  • 帖主:yhlqccnmmt
  • fishmans
  • elovenana
  • of123
  • wenguoli
  • WallesCai
  • qyxfree

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo