2010-10-11 50 views
1

我試圖動態地換出用戶控件。我如何'隱藏'面板上的控件?從Controls集合中刪除它們不起作用,並且設置控件的可見屬性不起作用。面板上的用戶控制在可見性設置爲false時保持可見

ServersView servers = new ServersView();   
     ServersPresenter presenter = new ServersPresenter(servers); 
     _view.SettingsPanel.Controls.Add(servers); 
     _view.SettingsPanel.Controls[0].Visible = false; 

新控件在添加後不可見,因爲其他用戶控件仍然可見。有人能告訴我如何隱藏用戶控件嗎?

感謝

+2

您確定要添加的控件是SettingsPannel.Controls集合中的第一個控件嗎?如果在那裏有另一個控件,你將添加你的設置並設置第一個可見屬性! – 2010-10-11 03:34:28

回答

1

檢查,以確保控制[0]是真的,你認爲這是控制。例如,服務器是否與_view.SettingsPanel.Controls [0]相同?將所有控件添加一次,可能在表單加載或早期時間,然後再設置可見屬性會更好嗎?這樣,您不必擔心後面添加太多控件。

+0

是的..我無意中多次添加了相同的控件。 – Nick 2010-10-11 16:35:53

1

您確定控件集合在您添加新項目的時刻爲空嗎?當你添加一個項目時,它被放置在集合的末尾,所以最好引用最後一個項目。

設法得到控制的指標集合中:

int index = _view.SettingsPanel.Controls.GetChildIndex(servers); 
_view.SettingsPanel.Controls[index].Visible = false; 

恕我直言。

相關問題