子フォームの中にはMDI form
、閉じる前に表示するメッセージボックスが必要なものと、質問せずに閉じることができるものがあります。子フォームのapplication.Exit()
から呼び出すときの問題のため、私は親のに処理し、それがどこで発生したかを確認します。メッセージボックスが必要な形式で起動された場合は、それ以外の場合はアプリケーションを閉じます。これはすべて、次のコードに実装されています。close event
close event
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
SEdit se = this.ActiveMdiChild as SEdit;
SoEdit soleEdit = this.ActiveControl as SoEdit;
UppEdit ue = this.ActiveControl as UpEdit;
MEdit mat = this.ActiveControl as MEdit;
LEdit lse = this.ActiveControl as LEdit;
CEdit cle = this.ActiveControl as CEdit;
if (se != null || soleEdit != null || ue != null || mat != null || lse != null || cle != null)
{
if (MessageBox.Show("Do you want to save before exit?", "Closing",
MessageBoxButtons.YesNo,
MessageBoxIcon.Information) == DialogResult.Yes)
{
MessageBox.Show("To Do saved.", "Status",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
}
私はまだ学んでいますが、そのような長いifステートメントが悪いコードの兆候であることは知っていますが、それを改善する方法がわかりません。この状況を処理する適切な方法は何ですか?