このコードで:
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がコメントアウトされている場合、残りのコード (Close と Dispose) が実行されます (そのため、変更を保存しようとすると、接続が開いていないというエラーメッセージが表示されます)。
したがって、コードを動作させるには、両方 (キャンセルとリターン) を実行する必要があります。
これは正常ですか?/予想どおりですか?