Пользовательский элемент управления на панели остается видимым, если для параметра установлено значение false - PullRequest
1 голос
/ 11 октября 2010

Я пытаюсь динамически менять пользовательские элементы управления.Как я могу «спрятать» элементы управления на панели?Удаление их из коллекции Controls не работает, а настройка свойства visible элемента управления не работает.

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

Новый элемент управления не отображается после добавления, поскольку другой пользовательский элемент управления все еще отображается.Может кто-нибудь сказать мне, как скрыть пользовательские элементы управления?

Спасибо

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Вы уверены, что контрольная коллекция пуста в момент добавления нового элемента?Когда вы добавляете элемент, он помещается в конец коллекции, поэтому лучше ссылаться на последний элемент.

Попробуйте получить индекс элемента управления в коллекции:

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

ИМХО.

1 голос
/ 11 октября 2010

Убедитесь, что элементы управления [0] - это действительно тот элемент управления, о котором вы думаете. Например, являются ли серверы тем же объектом, что и _view.SettingsPanel.Controls [0]? Было бы лучше добавить все элементы управления один раз, может быть, при загрузке формы или в более раннее время, а затем установить свойство visible позже? Таким образом, вам не нужно беспокоиться о добавлении слишком большого количества элементов управления позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...