禁用父面板,同时启用子面板

我有一个WinForms应用程序,我有一个庞大的Panel。 在Panel内部是一堆东西,包括第二个小面板。

当某个事件发生时,我希望大型面板变为Enabled = false,我仍然希望将小面板设置为Enabled。 我可以这样做吗? 在我禁用大型面板之后,我试图重新启用这个小面板,但没有任何工作。

或者,我怎样才能使它变得如此微小的面板“在顶部”,而不是“内部”的巨大面板?

我疯狂猜测并尝试:

tinyPanel.Parent = null; 

tinyPanel.Parent = this;

但是,这只会让tinyPanel消失。

不,这是不可能的。 禁用父级时禁用所有子控件。 这就是Windows的工作原理; 你无法改变它。

您需要找到解决问题的不同方法。 重新设置控件一个选项,但是你尝试这样做的方式是不正确的。 您需要从“大规模Panel”的Controls集合中删除它,然后将其添加到表单的Controls集合中。 然后,您将能够独立更改两个控件的启用状态。

禁用父控件时,我认为您无法启用控件。