###前提・実現したいこと
初心者です。
vidualStadio 2017 でスケジュールアプリを制作している。
フォーム内にシステム終了ボタンを設置した。
右上の×ボタンを押した時にもシステム終了をするようにした。(ログインフォームを出さないように。)
フォーム終了時にシステム終了と確認メッセージを出す処理をつけている。
システム終了時にも同じ処理を施しているが、システム終了ボタンを押した時に2重の確認になってしまうので
1度だけ確認すればアプリケーション終了できるようにしたい。
###該当のソースコード
C#
同フォーム内のコード
//システム終了ボタンクリック時の処理
private void BtnExit_Click(object sender, EventArgs e)
{
//ログイン情報ファイルの存在チェック
string path = Settings.GetSettingPath(); //ログイン情報ファイルへのパス
if (File.Exists(path) == true) { //CancelEventArgsオブジェクトの作成 System.ComponentModel.CancelEventArgs cea = new System.ComponentModel.CancelEventArgs(); //メッセージボックスを出して、OKの時システムを終了させる if (MessageBox.Show("本当に終了してもよろしいですか?
\r\n※このまま終了するとログイン情報は保持されます。", "終了確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK)
Application.Exit(cea);
}
}
//ログアウトボタンクリック時の処理
private void BtnLogout_Click(object sender, EventArgs e)
{
//ログイン情報を破棄する(ファイルを削除する)
File.Delete(Settings.GetSettingPath());
//ログイン画面へ移動 Close(); } //フォームの閉じる時の処理 private void Frm_BGMain_FormClosed(object sender, FormClosedEventArgs e) { //ログイン情報ファイルの存在チェック string path = Settings.GetSettingPath(); //ログイン情報ファイルへのパス if (File.Exists(path) == true) { //CancelEventArgsオブジェクトの作成 System.ComponentModel.CancelEventArgs cea = new System.ComponentModel.CancelEventArgs(); //メッセージボックスを出して、OKの時システムを終了させる if (MessageBox.Show("本当に終了してもよろしいですか?\r\n
※このまま終了するとログイン情報は保持されます。", "終了確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK)
Application.Exit(cea);
}
}
###試したこと
フラグを立ててシステム終了ボタンを押した時はフォーム終了時の処理をさせないようにすればいいと、助言をもらったが
どのようにフラグを実装して、コードにすればいいのかわからない。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/20 05:15