私は3つのフォームを持つ単純なアプリケーションをデバッグしていましたが、フォームを閉じた後、フォームを表すオブジェクトが再度作成された(それぞれのフォームを表示するボタンをクリックする) 。 これはリソースを不必要に消費すると思います。フォームが閉じられ、再び開いたときにフォームのインスタンスを再作成しない方法はありますか?
したがって、プログラムの実行中に使用するすべてのフォームのインスタンスを1つだけ作成するにはどうすればよいですか?
私は3つのフォームを持つ単純なアプリケーションをデバッグしていましたが、フォームを閉じた後、フォームを表すオブジェクトが再度作成された(それぞれのフォームを表示するボタンをクリックする) 。 これはリソースを不必要に消費すると思います。フォームが閉じられ、再び開いたときにフォームのインスタンスを再作成しない方法はありますか?
したがって、プログラムの実行中に使用するすべてのフォームのインスタンスを1つだけ作成するにはどうすればよいですか?
閉鎖イベントに接続することができます。閉じているフォームを実際に閉じずに非表示に設定するだけで済みます。フォームは、フォーム自体の初期化とレンダリングを処理するSingletonを介して利用可能になります。
ファイルや接続など、使用していないフォームのリソースを解放したい場合があることに注意してください。
注記フォームを使用していないときにフォームをメモリに保存すると、アプリケーションのメモリ使用量が増えることに注意してください。
シングルトンパターンのようなサウンドを表現しています。
private MyForm() {
}
private static MyForm _instance;
public static MyForm Instance => _instance ?? (_instance = new MyForm());
コンストラクタがプライベートなので、デザイナが混乱し始める可能性があります。さらに、フォームを破棄/閉じることはできません。それはフォームを非表示にする代わりに非表示にするように強制します
はい、要件に基づいて慎重に評価することです。ありがとう。 –