C# 单击按钮时,从另一个类库在Windows窗体中执行UserControl
我有一个主项目,它有一个面板和菜单。当用户单击按钮时,我想加载一个用户控件 我为UI创建了类库。但是,当我单击按钮时,它不会在主项目中加载用户控件。有什么问题 主要项目: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
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);
}