【发布时间】:2018-04-29 14:15:35
【问题描述】:
我正在尝试将用户控件的实例动态加载到我的主窗体上,它在加载程序时大部分时间都可以工作,但在加载该用户控件的相应按钮被按下两次后就不起作用了。
我正在使用以下代码来创建用户控件的实例
public partial class patientInfo : UserControl
{
public static patientInfo _instance;
public static patientInfo Instance
{
get
{
if (_instance == null)
_instance = new patientInfo();
return _instance;
}
}
}
以及在 MainForm 上加载实例的代码
private void pInfo_Click(object sender, EventArgs e)
{
//Patient Info
foreach (Control ctrl in panel3.Controls)
{
ctrl.Dispose();
}
if (!panel3.Controls.Contains(patientInfo.Instance))
{
panel3.Controls.Add(patientInfo.Instance);
patientInfo.Instance.Dock = DockStyle.Fill;
patientInfo.Instance.BringToFront();
}
else
{
patientInfo.Instance.BringToFront();
}
}
如果我按下此按钮,用户控件将按预期方式加载,但我再次按下它,用户控件将消失。我使用 Dispose 是因为我想在不同的鼠标按钮上加载和卸载多个用户控件。 请指教谢谢。
【问题讨论】: