2012-03-07 13 views
0

私はフォームとサブフォームを持ち、いずれもapp.configの設定にバインドされているコントロールを持っています。設定にバインドされているコントロールにロールバックが変更されます

サブフォームには[保存]と[キャンセル]ボタンがあり、ユーザーが[保存]をクリックすると設定が保存され、[キャンセル]をクリックすると保存されずにフォームが閉じます。

(FormClosingイベントを使用して)メインフォームを閉じると、そのフォームの設定も保存されますが、サブフォームの設定が同じ場所にあるため、これらの設定も保存されます。

おそらく私はサブフォームのコントロールを変更した後、キャンセルを介して終了しました。このような状況では、メインフォームが終了するとこれらの不要な設定も保存されます。

どうすればよいですか?明らかに、Cancelを押すと、サブフォームの値を特にリセットすることができました。しかし、理想的には、設定バインドコントロールを追加または削除するたびにこのコードを更新し続ける必要はありません。

フォームレベルのリセットまたはロールバックオプションがあるかどうか疑問に思っていたので、個々のコントロールを手動で操作しなくてもサブフォームの状態をリセットできますか?

また、フォームごとに別々の設定ファイルを用意する必要がありますか?なぜ私はこれを行うことができなかった理由はないと思うが、良い方法があるのだろうか?

答えて

0

私が行った解決策は、さまざまなアプリケーション/ユーザー/フォームの設定を異なる.settingsファイル(this question参照)に分けることです。

設定をより細かく制御することができます。は、このフォーム(唯一)に関する設定をFormClosingイベントで再ロードします。

関連する問題