从面板中删除控件;不要将其从表格中删除

本文关键字:删除 表格 控件 | 更新日期: 2023-09-27 18:19:56

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

我通过使用屏幕来添加和删除控件,具体取决于用户的选择。

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

直到我消失了它才"消失":

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

这是意料之中的事吗?有人能向我解释一下吗,或者给我指一个解释Windows窗体中控件行为的地方。

谢谢!

从面板中删除控件;不要将其从表格中删除

很明显,控件将窗体作为其父级,而不是面板。设计师很容易发生这种事故。您可以使用"视图+其他Windows+文档布局"来获得父子关系的良好视图。您可以在此列表中使用拖放进行修复。