Отмена закрытия формы из какого-либо события
Я хочу, чтобы событие formClosing отменило операцию закрытия, если SaveFileDialog в моем событии SaveAs Click имеет значение Отмена
void exitToolStripMenuItem_Click (object sender, EventArgs e) {
this.Close ();
}
void form1_FormClosing (object sender, FormClosingEventArgs e)
{
if (isContentChanged)
{
DialogResult result = MessageBox.Show ("Do you want to save [ "+this.Text+"] ?", "Save", MessageBoxButtons.YesNoCancel);
if (result == DialogResult.Yes)
{
saveAsToolStripMenuItem_Click (sender, e);
}
else if (result == DialogResult.Cancel)
e.Cancel = true;
}
}
private void saveAsToolStripMenuItem_Click (object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog ();
sfd.Filter = "Drawing Files | *.drg";
DialogResult result = sfd.ShowDialog ();
if (result == DialogResult.OK) {
SaveFile (sfd.FileName);
isContentChanged = false;
}
else if (result == DialogResult.Cancel)
{
// NEED TO CANCEL FORM CLOSING HERE
}
}
Является ли это возможным? Если да, то как?
1 ответ
Решение
Попробуй это:
private void saveAsToolStripMenuItem_Click (object sender, EventArgs e)
{
...
if (result == DialogResult.OK)
{
...
}
else if (result == DialogResult.Cancel)
{
((FormClosingEventArgs) e).Cancel = true;
}
}