我正在C#winforms项目中工作,我有一个用户控件,它从工具条菜单中选择加载。我有一个字典查找设置发生在其他功能的用户控件的表单加载。另外,当我关闭用户控件时,我只使用“.Hide();”方法。我注意到,当我第一次加载用户控件时,一切都很好,但是当我关闭它并选择第二次打开它时,它会创建对象的新实例,从而抛弃我的字典查找。因此,我写了一些代码试图解决这个问题。动态创建用户控件在C#
我需要做的是以某种方式说,如果用户控件的一个实例已经存在,请不要创建该对象的新实例。相反,只需使用户控件再次可见即可。所以我写了代码试图达到这个目的。当我第一次选择该项目时,一切都很好。当我隐藏用户控件并尝试再次打开时,没有任何反应。
以下是我为这个目的而发生在该项目从工具条菜单中选择编写的代码:
if (Controls.ContainsKey("CheckAvailUserControl"))
{
Controls["CheckAvailUserControl"].Dock = DockStyle.Fill;
Controls["CheckAvailUserControl"].Visible = true;
Controls["CheckAvailUserControl"].Show();
Controls["CheckAvailUserControl"].Refresh();
}
else
{
UserControl checkAvailUserControlLoad = new CheckAvailUserControl();
Controls.Add(checkAvailUserControlLoad);
checkAvailUserControlLoad.Dock = DockStyle.Fill;
checkAvailUserControlLoad.Visible = true;
checkAvailUserControlLoad.Show();
}
当我通过我的代码在调试跟踪它实际上是在击中上面的if/else语句的正确部分。它只是在我第二次尝试加载它时没有在屏幕上显示用户控件。
问题是:如何关闭用户控件后正确加载,然后再从工具条菜单中选择它?
问题是什么? – 2009-02-23 19:24:55
现在的问题是: 如何让用户控件在关闭后正确加载,然后再次从工具条菜单中选择它? – 2009-02-23 20:28:39