使用此代码:
private void PlatypusMainForm_FormClosing(object sender, FormClosingEventArgs e) {
if ((UnsavedChanges()) && (!(UserWantsToMoveOnWithoutSaving(CONFIRM_CLOSE_UNSAVED_CHANGES_LOST, "Close Without Saving?")))) {
e.Cancel = true;
return;
}
if (oracleConnectionMainForm.State == ConnectionState.Open) {
oracleConnectionMainForm.Close();
oracleConnectionMainForm.Dispose();
}
}
...如果e.Cancel = true被注释掉,表单无论如何都会关闭。
...如果return被注释掉,其余代码(关闭和处置)运行(因此,如果我尝试保存更改,我会收到连接未打开的错误消息)。
因此,我必须同时执行(取消和返回)以使代码能够像我认为的那样与任何一个一起工作。
这是正常的/如预期的那样吗?