通俗的讲,Controls.Remove 和 Controls.Clear()的主要差别在于,Controls.Remove 可以实现一个一个的删除控件,而 Controls.Clear()是将所有的控件一次性强制删除。 如果使用foreach方法,借助Controls.Remove,按理说也可以做到删除全部控件,即: foreach (Control mControl in this.panPic.Controls) { this.panPic.Controls.Remove(mControl); } 这就是删除一个名为panPic的panel中的所有控件的方法。 当想删除panel上的所有自定义控件时,如果使用Control.Remove方法来一个一个的删除时,可能会出现某些控件删除不了的情况。如果使用this.panPic.Controls.Clear();则可以将控件全部删除。 结论: 如果想要全部删除所有控件,使用this.panPic.Controls.Clear();方法,而不是一个一个的用Controls.Remove删除掉。