2016-06-17 2 views
1

私は3つのフォームを持つ単純なアプリケーションをデバッグしていましたが、フォームを閉じた後、フォームを表すオブジェクトが再度作成された(それぞれのフォームを表示するボタンをクリックする) 。 これはリソースを不必要に消費すると思います。フォームが閉じられ、再び開いたときにフォームのインスタンスを再作成しない方法はありますか?

したがって、プログラムの実行中に使用するすべてのフォームのインスタンスを1つだけ作成するにはどうすればよいですか?

答えて

4

閉鎖イベントに接続することができます。閉じているフォームを実際に閉じずに非表示に設定するだけで済みます。フォームは、フォーム自体の初期化とレンダリングを処理するSingletonを介して利用可能になります。

ファイルや接続など、使用していないフォームのリソースを解放したい場合があることに注意してください。

注記フォームを使用していないときにフォームをメモリに保存すると、アプリケーションのメモリ使用量が増えることに注意してください。

+0

はい、要件に基づいて慎重に評価することです。ありがとう。 –

1

シングルトンパターンのようなサウンドを表現しています。

private MyForm() { 

} 

private static MyForm _instance; 
public static MyForm Instance => _instance ?? (_instance = new MyForm()); 

コンストラクタがプライベートなので、デザイナが混乱し始める可能性があります。さらに、フォームを破棄/閉じることはできません。それはフォームを非表示にする代わりに非表示にするように強制します

関連する問題