从面板中删除控件不会将其从表单中删除?

时间:2012-01-10 05:53:11

标签: c# winforms controls

我有一个例程,我循环遍历表单上的所有控件并处理其中一些代码。

我根据用户的选择,通过使用屏幕添加和删除控件。

我发现panel.Controls.Remove(control1)实际上没有从表单中删除它。当我运行通过表单上的控件递归循环的例程时,我认为我删除的控件仍然被找到。

直到我这样做才“消失”:

panel.Controls.Remove(control1);
this.Controls.Remove(control1)

这是预期的吗?有人可以向我解释这个问题,或者指向某个解释Windows窗体中控件行为的地方。

谢谢!

1 个答案:

答案 0 :(得分:3)

显然,控件的格式为Parent,而不是面板。设计师很容易发生这类事故。您可以使用View + Other Windows + Document Layout来更好地了解子父关系。您可以使用此列表中的拖放来修复。