ウィザードのような一連の 5 つの単純なフォームを使用するアプリケーションを作成しています。最初のフォームである NewProfile は、メイン アプリケーションである MainForm のメニュー項目から開かれるため、MainForm のサブフォームです。2 番目のフォームである TwoProfile は、NewProfile のボタンから開きます。3 番目のフォームである ThreeProfile は、TwoProfile のボタンから開かれます。5 つのフォームすべてについても同様です。シーケンスは次のとおりです: MainForm --> NewProfile <--> TwoProfile <--> ThreeProfile <--> FourProfile <--> FiveProfile。私の問題は、任意のフォーム (NewProfile、TwoProfile、ThreeProfile、FourProfile、または FiveProfile) が開いているときに、ユーザーが NewProfile のインスタンスを作成できないようにすることです。
私は、途中で動作するシングルトン パターンを実装することから始めました。NewProfile が開いている場合に機能し、MainForm に移動して NewProfile の別のインスタンスを作成しようとします。次のフォームに進むことによって NewProfile が破棄され、TwoProfile、ThreeProfile、FourProfile、または FiveProfile のいずれかが開いている場合は機能しません。NewProfile.IsDisposed が true であることがわかり、Singleton インスタンスへの不適切な参照が表示されます。
私が理解できないのは、TwoProfile、ThreeProfile、FourProfile、または FiveProfile のいずれかが開いている場合、または NewProfile 自体が開いている場合に NewProfile が作成されないようにロジックを実行する方法です。
これが理にかなっていることを願っています。シングルトンで行ったことを除いて、投稿するコードはあまりありません。
private static NewProfile _instance = null;
public static NewProfile Instance
{
get
{
if (_instance == null)
{
_instance = new NewProfile();
}
return _instance
}
}
ありがとうございました :)