C# 使用单例模式打开新的winform

C# 使用单例模式打开新的winform,c#,winforms,singleton,C#,Winforms,Singleton,我有这样一个表单,我想使用singleton来确保只有一个实例在运行 private static productForm instance; public productForm() { InitializeComponent(); } public static productForm GetInstance { get { if (instance == null) { instance = new prod

我有这样一个表单,我想使用singleton来确保只有一个实例在运行

private static productForm instance;
public productForm()
{
    InitializeComponent();
}

public static productForm GetInstance
{
    get
    {
        if (instance == null)
        {
            instance = new productForm();
        }
        return instance;
    }
}

/*private void productForm_FormClosed (object sender, FormClosingEventArgs e)
{
    instance = null;
}*/
}

在mainform中单击事件

    private void categoryTreeToolStripMenuItem_Click(object sender, EventArgs e)
    {
        productForm.GetInstance.Show();

    }
关闭productform时出现错误,尝试重新打开时出现错误

productForm.GetInstance.Show()的名称;将输出错误消息“无法访问已处置对象”,似乎productForm不可访问,有人知道问题出在哪里吗

试试这个

private static productForm instance;
public productForm()
{
  InitializeComponent();
}

public static productForm GetInstance
{
get
{
    if (instance == null || instance.IsDisposed)
    {
        instance = new productForm();
    }
    return instance;
}
}
试试这个

private static productForm instance;
public productForm()
{
  InitializeComponent();
}

public static productForm GetInstance
{
get
{
    if (instance == null || instance.IsDisposed)
    {
        instance = new productForm();
    }
    return instance;
}
}