如果修改方法保存

时间:2017-11-01 15:18:29

标签: c# winforms

我正在尝试编写一个SaveIfModified方法,并且它应该与WinForms一起工作,每当我编辑文件时,如果我在中间关闭它而不保存它,它应该提示一个对话框,提到,"数据已更新,你确定要关闭而不保存吗?"。 这种方法肯定适用于此,但是,如果没有进行任何更改或修改,它会提示相同的对话框。 我无法理解为什么会发生这种情况?

  private bool SaveIfModified()
    {
        //    if (!Modified) //don't do anything
        //      return true;

        if (Modified)
        {
            DialogResult result = MessageBox.Show("The current file has been Updated. Do you want to Save Changes?", "Do you want to Save Changes", MessageBoxButtons.YesNoCancel);
            if (result == DialogResult.Yes)
            {
                if (FileName != null)
                {
                    return WriteFile(FileName);
                }
                else
                {
                    SaveFileDialog.FileName = FileName;
                    if (SaveFileDialog.ShowDialog(this) == DialogResult.OK)
                        return WriteFile(SaveFileDialog.FileName);
                    return false;
                }
            }
            else if (result == DialogResult.No)
            {
                return true;
            }
            else // DialogResult.Cancel i.e "fine, no need to save"
            {
                return false;
            }
        }

        else
        {
            return true;
        }

    }

1 个答案:

答案 0 :(得分:0)

请记住重置它,使其不保留以前的值。

如果您在更改时仅将其设置为false,并且在保存后不将其重置为false,则即使没有其他内容,下次也会如此变化

通常,它必须从true开始。如果有变化,请更改为false。保存后更改为{{1}}。