質問: Windowsフォームの終了処理についてです。 フォーム内に終了ボタンを作成し、終了ボタンを押下したときと、フォームの右上にある×ボタンを押下したときに、メッセージを表示、画面終了をさせたいです。 どのように修正すれば、実現可能でしょうか。 現状のコード ``` private void End_Click(object sender, EventArgs e) { try { Form1_FormClosed(sender, e); } catch (Exception ex) { MessageWindow.Show(MessageType.Error, "例外が発生しました"); } } private void Form1_FormClosed(object sender, FormClosedEventArgs e) { try { if (MessageWindow.Show(MessageType.YesNo, "Form1を終了しますか?") != DialogResult.Yes) { return; } this.Close(); } catch (Exception ex) { MessageWindow.Show(MessageType.Error, "例外が発生しました"); } } ``` 出力されたエラー Form1_FormClosed(sender, e);で以下のエラーが発生 引数2は'System.EventArgs'から'System.Windows.Forms.FormClosedEventArgs'へ変換することはできません。
回答: フォームが閉じられる時に何かしらの処理をしたいのであればForm.FormClosingイベントを使用します。 また、イベントについての理解が怪しく感じます。そのあたりも学習すべきかと思います。 ちなみに、「FormClosedイベント」は「**フォームが閉じた後**」に発生します。