我有一个Form_Closing事件,如果文件已被更改,则提示用户保存已对文件进行的更改(标准的是/否/取消选项)。问题出现在取消操作。
如果我选择“文件”-> “新建”,并且存在已更改的文件,则按预期会出现提示,但当我选择“取消”时,新表单将被呈现,而不是停留在当前表单上,并且最终我将同时打开两个表单。
以下是MainForm(File New)代码:
如果我选择“文件”-> “新建”,并且存在已更改的文件,则按预期会出现提示,但当我选择“取消”时,新表单将被呈现,而不是停留在当前表单上,并且最终我将同时打开两个表单。
以下是MainForm(File New)代码:
if (editForm != null)
{
// Close existing Editor form
editForm.Close();
// Open new form
editForm = new EditorForm(this);
// Close Form Events
editForm.Closing += new CancelEventHandler(EditorForm_Closing);
editForm.Show();
editForm.Focus();
else
{
// Open new Editor
editForm = new EditorForm(this);
// Close Form Events
editForm.Closing += new CancelEventHandler(EditorForm_Closing);
editForm.Show();
editForm.Focus();
}
这是我的EditForm_Closing:
if (editForm != null)
{
if (editForm.diagramComponent.Model.Modified)
{
DialogResult res = MessageBox.Show(this, "The project has been modified. Save changes?", "Save changes", MessageBoxButtons.YesNoCancel);
if (res == DialogResult.Yes)
{
if (!editForm.HasFileName)
{
if (this.saveEditorDialog1.ShowDialog(this) == DialogResult.OK)
{
this.ActiveDiagram.SaveSoap(this.saveEditorDialog1.FileName);
editForm.FileName = this.saveEditorDialog1.FileName;
}
}
else
{
this.ActiveDiagram.SaveSoap(editForm.FileName);
}
}
else if (res == DialogResult.Cancel)
{
e.Cancel = true;
}
}
我不确定如何将取消关闭事件与“文件”->“新建”之间的关联起来。非常感谢您的任何帮助。谢谢。
编辑:添加了我的EditForm_Closing事件。