就像记事本的“保存提示”功能一样。点击右上角的叉后,如果文档已修改,即弹出是否保存的对话框;若没修改,不弹出对话框,直接保存。我的问题是:如何知道正在操作的文件(如xml文件或txt文件)已经被修改过了还是没有修改?

解决方案 »

  1.   

    可以在打开时设置一个标志,在编辑的(TextBox)控件的键盘事件中改变标志,当退出时根据标志就可以了...
      

  2.   

    定义一个全局或者静态的bool变量Need_Save初始化为false;
    在textbox的keypress事件里为Need_Save赋为true;(如果在textchange事件里写代码,那么载入后不修改也会让你保存的)
    最后在Form_Closing事件里面判断Need_Save即可
      

  3.   

    1 处理编辑框的TEXT_CHANGED事件, 在该事件中执行 m_bModify = true;
    2 处理 form_closing 事件
      if (m_bModify)
      {
         n = MessageBox(是否保存, YesNoCancel)?
         switch(n)
         {
           case Yes: save(); break;
           case No: break;
           case Cancel: e.Cancel = true;/*终止窗口关闭*/ break; 
         }
      }      
      

  4.   

    1.定义一个全局或者静态的bool变量Need_Save初始化为false; 
    在textbox的keypress事件里为Need_Save赋为true;(如果在textchange事件里写代码,那么载入后不修改也会让你保存的) 
    最后在Form_Closing事件里面判断Need_Save即可very good!!!2.检查该文件的修改时间,你改了,时间就会变
    sounds good !!
      

  5.   

    为楼上做补充:
    如果处理TEXT_CHANGED事件,那么要过滤掉第一次载入时的TEXT_CHANGED,因为载入也会导致textbox的内容改变,但是如果用户没有修改是不需要询问保存的。所以我建议处理key_press事件。
      

  6.   

    text changed不错,用这个方法可以判断是否修改了文本框