今天做一个功能,遍历一个父窗体内所有控件,符合条件的删除.
代码如下:
foreach (Control item in this.floorGraph.Controls) { if ("SA.Client.Win.Controls.UnitBoxGraph".Equals(item.GetType().ToString())) { UnitBoxGraph unitBox = (UnitBoxGraph)item; this.floorGraph.Controls.Remove(unitBox); } }
结果明明6个控件,只删除了3个.纳闷了许久.
发现他的执行结果与下面代码相同:
for (var i = 0; i < this.floorGraph.Controls.Count; i++) { UnitBoxGraph unitBox = (UnitBoxGraph)this.floorGraph.Controls[i]; this.floorGraph.Controls.Remove(unitBox); }
太郁闷了.