我有一个例程,我循环遍历表单上的所有控件并处理其中一些代码。
我根据用户的选择,通过使用屏幕添加和删除控件。
我发现panel.Controls.Remove(control1)
实际上没有从表单中删除它。当我运行通过表单上的控件递归循环的例程时,我认为我删除的控件仍然被找到。
直到我这样做才“消失”:
panel.Controls.Remove(control1);
this.Controls.Remove(control1)
这是预期的吗?有人可以向我解释这个问题,或者指向某个解释Windows窗体中控件行为的地方。
谢谢!
答案 0 :(得分:3)
显然,控件的格式为Parent,而不是面板。设计师很容易发生这类事故。您可以使用View + Other Windows + Document Layout来更好地了解子父关系。您可以使用此列表中的拖放来修复。