C#表单 - 从Buttons,PictureBoxes清除表单,

时间:2012-04-18 13:00:48

标签: c# forms controls

这是问题所在: 我添加了很多按钮,图片框,文本框和其他控件,如下所示:

btnStart = new Button(); bla bla bla text text text ...

我一直在增加更多。所以,我了解到我可以逐个删除它们:

Controls.Remove(btnStart);

但我真正想知道的是,如果有一种方法可以立即删除所有这些内容,而不是在我想要删除它们时指定其中的每一个。基本上我想创建新的:

private void ClrScr() { //Help??? }

一旦从此表单中调用,将删除所有控件(一切都以一种形式完成)。 任何人都可以帮忙吗?我还是很陌生。

2 个答案:

答案 0 :(得分:3)

Controls.Clear( )应该这样做。

编辑:

如下所述 - Controls.Clear( )可能导致内存泄漏。看看这个答案:How to Clear() controls without causing a memory leak

答案 1 :(得分:1)

如果要删除主窗体的所有子控件,请使用Controls.Clear()

如果您有一些不想删除的固定控件,请将动态生成的控件添加到Panel。然后,您可以致电mypanel.Controls.Clear()以仅删除这些控件。

编辑:似乎Controls.Clear会导致内存泄漏,因此您可以使用Hans Passant的this answer