Отключить родительскую панель при включенной дочерней панели

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

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

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

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

tinyPanel.Parent = null;

и tinyPanel.Parent = this;

Но это просто заставляет tinyPanel исчезать.

Ответ 1

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

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

Ответ 2

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