Disable Parent Panel, while keeping child panel enabled

白昼怎懂夜的黑 提交于 2019-11-28 07:15:30

问题


I have a WinForms app, and I have a massive Panel in it. And inside that Panel is a bunch of stuff, including a second, tiny panel.

When a certain event occurs, I want the massive panel to become Enabled = false, and I still want the tiny panel to be Enabled. Can I do this? I have tried to just re-enable the tiny panel after I've disabled the massive panel, but no worky.

Or, how can I make it so the tiny panel is "on-top of", but not "inside" the massive panel?

I took a wild guess and tried:

tinyPanel.Parent = null;

and tinyPanel.Parent = this;

But, that just makes tinyPanel disappear.


回答1:


No, this is not possible. All child controls are disabled when their parent is disabled. That's simply how Windows works; you're not going to be able to change it.

You need to find a different way of solving your problem. Re-parenting the control is an option, but the way you're trying to do it is incorrect. You need to remove it from the Controls collection for the "massive Panel", and then add it to the Controls collection for your form. Then you will be able to change the enabled state of both controls independently.




回答2:


I don't think you can make a control enabled while the parent control is disabled.



来源:https://stackoverflow.com/questions/5361340/disable-parent-panel-while-keeping-child-panel-enabled

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!