我正在尝试编写一个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;
}
}
答案 0 :(得分:0)
请记住重置它,使其不保留以前的值。
如果您在更改时仅将其设置为false
,并且在保存后不将其重置为false
,则即使没有其他内容,下次也会如此变化
通常,它必须从true
开始。如果有变化,请更改为false
。保存后更改为{{1}}。