我尝试使用以下代码删除所有形状:
PowerPoint.Application ppApp = Globals.ThisAddIn.Application; PowerPoint.Presentation ppP = ppApp.ActivePresentation; PowerPoint.Slide ppS = ppApp.ActiveWindow.Selection.SlideRange[1]; PowerPoint.Shapes 形状 = ppS.Shapes; foreach(PowerPoint.Shape 形状中的形状) { 形状.删除(形状); }
它不能像我预期的那样删除所有形状,因为当一个形状被删除时,它会影响 PowerPoint.Shapes。如果我想删除所有形状,我需要将所有形状添加到一个列表中,然后删除每个形状,例如:
PowerPoint.Application ppApp = Globals.ThisAddIn.Application; PowerPoint.Presentation ppP = ppApp.ActivePresentation; PowerPoint.Slide ppS = ppApp.ActiveWindow.Selection.SlideRange[1]; PowerPoint.Shapes 形状 = ppS.Shapes; 如果(形状 == null)返回; 列表列表形状 = 新列表(); foreach(PowerPoint.Shape 形状中的形状) { listShapes.Add(形状); } foreach(列表形状中的 PowerPoint.Shape 形状) { 形状.删除(); }
有没有其他更快的删除方法?