我正在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