Отключить родительскую панель, оставив дочернюю панель включенной - PullRequest
10 голосов
/ 19 марта 2011

У меня есть приложение WinForms, и у меня есть массивная панель в нем. И внутри этой панели куча вещей, в том числе вторая, крошечная панель.

Когда происходит определенное событие, я хочу, чтобы массивная панель стала Enabled = false, и я все еще хочу, чтобы крошечная панель была включена. Я могу это сделать? Я попытался просто включить крошечную панель после отключения массивной панели, но без работы.

Или, как я могу сделать так, чтобы крошечная панель находилась «сверху», а не «внутри» массивной панели?

Я сделал дикое предположение и попытался:

tinyPanel.Parent = null;

и tinyPanel.Parent = this;

Но это просто заставляет крошечную панель исчезнуть.

Ответы [ 2 ]

15 голосов
/ 19 марта 2011

Нет, это невозможно. Все дочерние элементы управления отключены, когда их родительский элемент отключен.Это просто, как работает Windows;Вы не сможете изменить его.

Вам нужно найти другой способ решения вашей проблемы.Переопределение элемента управления является опцией , но способ, которым вы пытаетесь это сделать, неверен.Вам необходимо удалить ее из коллекции Controls для "массивной панели", а затем добавить ее в коллекцию Controls для вашей формы.После этого вы сможете независимо изменять состояние включения обоих элементов управления.

0 голосов
/ 19 марта 2011

Не думаю, что вы можете включить элемент управления, пока родительский элемент управления отключен.

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