C# 单击按钮时,从另一个类库在Windows窗体中执行UserControl

C# 单击按钮时,从另一个类库在Windows窗体中执行UserControl,c#,winforms,user-controls,C#,Winforms,User Controls,我有一个主项目,它有一个面板和菜单。当用户单击按钮时,我想加载一个用户控件 我为UI创建了类库。但是,当我单击按钮时,它不会在主项目中加载用户控件。有什么问题 主要项目: private void BtnMainPage_Click(object sender, EventArgs e) { if (!PanelHome.Controls.Contains(Home.Instance)) { PanelHome.Controls.Add(H

我有一个主项目,它有一个面板和菜单。当用户单击按钮时,我想加载一个用户控件

我为UI创建了类库。但是,当我单击按钮时,它不会在主项目中加载用户控件。有什么问题

主要项目:

private void BtnMainPage_Click(object sender, EventArgs e)
{
        if (!PanelHome.Controls.Contains(Home.Instance))
        {
            PanelHome.Controls.Add(Home.Instance);
            Home.Instance.Dock = DockStyle.Fill;
            Home.Instance.BringToFront();
        }
        else
        {
            Home.Instance.BringToFront();
        }
}
用户界面:

public部分类主页:UserControl
{
#区域变量
公共静态主实例
{
收到
{
返回Singleton.GetInstance();
}
}
#端区
公共住宅()
{
初始化组件();
MessageBox.Show(“加载”);
}
}
单身人士:

public sealed class Singleton<T> where T : class, new()
{
    private volatile static T Instance;
    private static object _lock = new object();

    public static T GetInstance()
    {
        if (Instance == null)
        {
            lock (_lock)
            {
                if (Instance == null)
                {
                    Instance = new T();
                }
            }
        }
        return Instance;
    }
}
公共密封类单例,其中T:class,new()
{
私有易失静态T实例;
私有静态对象_lock=新对象();
公共静态GetInstance()
{
if(实例==null)
{
锁
{
if(实例==null)
{
实例=新的T();
}
}
}
返回实例;
}
}
私有void FrmDashboard\u加载(对象发送方,事件参数e)
{
DataTable dt=DAl.GetTables();
数据表dt1;
如果(dt.Rows.Count>0)
{
对于(int i=0;i
为什么必须是单身?对于用户控件来说,这很奇怪。请不要使用多个用户帐户滥用系统。不要滥用我们的空闲时间,我们这里有严格的规定。
public sealed class Singleton<T> where T : class, new()
{
    private volatile static T Instance;
    private static object _lock = new object();

    public static T GetInstance()
    {
        if (Instance == null)
        {
            lock (_lock)
            {
                if (Instance == null)
                {
                    Instance = new T();
                }
            }
        }
        return Instance;
    }
}
private void FrmDashboard_Load(object sender, EventArgs e)
{
    DataTable dt = DAl.GetTables();
    DataTable dt1;

    if (dt.Rows.Count > 0)
    {

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            o = new Available();
            if (dt.Rows[i]["Status"].ToString() == "A         ")
            {`enter code here`
                o.lblTable.BackColor = Color.DarkSeaGreen;
            }
            if (dt.Rows[i]["Status"].ToString() == "B         ")
            {
                o.lblTable.BackColor = Color.DarkRed;
            }
            else if (dt.Rows[i]["Status"].ToString() == "C         ")
            {
                o.lblTable.BackColor = Color.Blue;
            }
            o.ButtonClick1 +=new Available.EventHandler(o_ButtonClick1);       
            // MessageBox.Show(o.vButton1.Tag.ToString());
            o.lblTable.Text = i + "";
             panel.Controls.Add(o);
        }
    }   
}

protected void o_ButtonClick1(object sender, EventArgs e)
{
   MessageBox.Show(o.lblTable.Text);
}