我正在编写一个应用程序,它使用类似向导的 5 个简单表单系列。第一个表单 NewProfile 是从主应用程序 MainForm 上的菜单项打开的,MainForm 的子表单也是如此。第二种形式,TwoProfile,是从 NewProfile 上的一个按钮打开的。第三种形式,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 是真的,给了我对 Singleton 实例的错误引用。
我想不通的是如何执行我的逻辑,以便在 TwoProfile、ThreeProfile、FourProfile 或 FiveProfile 之一打开或 NewProfile 本身打开时不会创建 NewProfile。
我希望这是有道理的。除了我为 Singleton 所做的之外,我并没有太多要发布的代码。
private static NewProfile _instance = null;
public static NewProfile Instance
{
get
{
if (_instance == null)
{
_instance = new NewProfile();
}
return _instance
}
}
谢谢 :)