質問: こんにちは 現在、以下のようなアプリの設定用フォームを書いています ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/2ab2208652096619cd8f1c37e23751f8.jpeg) 左のリストボックスから項目を選ぶと右に対応した ユーザーコントロールのパネルが張られる仕組みです。 この左側で別の項目が選ばれると前のパネルの設定を 一時保存の構造体へ保存してDisposeして次のパネルを張る仕組みにしたいのですが ユーザーコントロールにUnload, Closing等の終了処理のイベントがないため 保存するタイミングがなくて困っています。OnDisposedに書いてみたのですが やはりDisposedですので一部設定が既に読めなくなっており正常に保存できません このような場合、どうすれば良いのでしょうか? 根本的な仕組みを変えるべきでしょうか? そもそもユーザーコントロールではこのように使用してはいけないのでしょうか?
回答: ParentChanged のイベントで上手くいきました ``` private void ***_ParentChanged(object sender, EventArgs e) { if(this.Parent == null) { // パネルが変わると親コントロールはnullになる // ここに保存処理を書く } } ``` 呼び出すしがわで controls.remove()をすると上記が呼ばれ、親コントロールがいないと保存処理ができます