C#表单-清除表单中的按钮、图片框、,
这就是问题所在: 我添加了许多按钮、图片框、文本框和其他控件,如下所示:C#表单-清除表单中的按钮、图片框、,,c#,forms,controls,C#,Forms,Controls,这就是问题所在: 我添加了许多按钮、图片框、文本框和其他控件,如下所示: btnStart=new按钮()bla bla bla文本 我一直在补充更多。所以,我知道我可以一个接一个地移除它们: Controls.Remove(btnStart); 但我想知道的是,是否有一种方法可以一次删除所有这些对象,而不是在我要删除它们时指定每一个对象。基本上,我想创建新的: private void ClrScr() { //Help??? } 这将删除从此窗体中调用的所有控件(所有操作都在一个窗体中完
btnStart=new按钮()代码>bla bla bla文本
我一直在补充更多。所以,我知道我可以一个接一个地移除它们:
Controls.Remove(btnStart);
但我想知道的是,是否有一种方法可以一次删除所有这些对象,而不是在我要删除它们时指定每一个对象。基本上,我想创建新的:
private void ClrScr() { //Help??? }
这将删除从此窗体中调用的所有控件(所有操作都在一个窗体中完成)。
有人能帮忙吗?这方面我还是个新手。控件。Clear()
应该可以
编辑:
正如下面指出的-Controls.Clear()
会导致内存泄漏。看看这个答案:控件。清除()
就可以了
编辑:
正如下面指出的-Controls.Clear()
会导致内存泄漏。看看这个答案:如果您想删除mainform的所有子控件,只需使用Controls.Clear()
如果有一些不想删除的固定控件,请将动态生成的控件添加到面板中。然后您可以调用mypanel.Controls.Clear()
仅删除这些控件
编辑:它看起来像控件。清除会导致内存泄漏,因此您可以使用Hans Passant提供的控件。如果要删除主窗体的所有子控件,只需使用Controls.Clear()
如果有一些不想删除的固定控件,请将动态生成的控件添加到面板中。然后您可以调用mypanel.Controls.Clear()
仅删除这些控件
编辑:看起来像是控件。清除会导致内存泄漏,因此您可以使用Hans Passant提供的信息。确实如此,非常感谢。@AntonioTehSumtin:请查看WouterHs答案中的注释。你不应该错过这个!我考虑了所有的答案。别担心:)的确如此,非常感谢。@AntonioTehSumtin:请也看看Wouters答案中的评论。你不应该错过这个!我考虑了所有的答案。别担心:)不确定,但我认为它只会移除它们,而不会处理它们。这不是内存泄漏的一种危险吗?如果从控件容器中删除控件对象,则不再有对这些控件的引用(如果您自己不在其他地方保存引用)。所以垃圾收集器将负责处理这些对象。在大多数情况下是的,但是如果你在某处有引用,你很快就会遇到麻烦。文档中有一个明确的警告:调用Clear方法不会从内存中删除控制句柄。必须显式调用Dispose方法以避免内存泄漏。
MSDN警告ControlCollection.Clear()不会从内存中删除句柄。它确实会导致泄漏。不确定,但我认为它只会移除它们,但不会处理它们。这不是内存泄漏的一种危险吗?如果从控件容器中删除控件对象,则不再有对这些控件的引用(如果您自己不在其他地方保存引用)。所以垃圾收集器将负责处理这些对象。在大多数情况下是的,但是如果你在某处有引用,你很快就会遇到麻烦。文档中有一个明确的警告:调用Clear方法不会从内存中删除控制句柄。必须显式调用Dispose方法以避免内存泄漏。
MSDN警告ControlCollection.Clear()不会从内存中删除句柄。它确实会导致泄漏。