C# 在PowerPoint中删除形状时撤消操作

C# 在PowerPoint中删除形状时撤消操作,c#,vsto,powerpoint,office-interop,C#,Vsto,Powerpoint,Office Interop,我有两种形状:幻灯片中的A和B。 我用它捕捉形状事件,包括删除或创建形状 当我收到关于删除形状A的通知时,我将同时删除形状B。PowerPoint将理解删除形状A和删除形状B是两个独立的操作。因此,撤消后,将显示形状B,而不是形状A。但是,我希望形状A也将显示。我该怎么做 我尝试以编程方式同时删除形状A和形状B: 删除(); shapeB.delete() 现在如果我撤销,PowerPoint将为我恢复两个形状A和B。这正是我所需要的。我现在想的是从代码中手动触发撤销 如果用户撤消,则显示形状B

我有两种形状:幻灯片中的A和B。 我用它捕捉形状事件,包括删除或创建形状

当我收到关于删除形状A的通知时,我将同时删除形状B。PowerPoint将理解删除形状A和删除形状B是两个独立的操作。因此,撤消后,将显示形状B,而不是形状A。但是,我希望形状A也将显示。我该怎么做

我尝试以编程方式同时删除形状A和形状B:

删除(); shapeB.delete()


现在如果我撤销,PowerPoint将为我恢复两个形状A和B。这正是我所需要的。

我现在想的是从代码中手动触发撤销

如果用户撤消,则显示形状B。那时,我将检查形状A是否存在(通过PowerPoint中的shape.Id或shape.Name查找)。如果形状A不存在,我们将手动撤消

PowerPoint.Shape shapeA = shapes[nameShapeA]; if (shapeA != null) { Application.CommandBars.ExecuteMso("Undo"); } PowerPoint.Shape shapeA=shapes[nameShapeA]; if(shapeA!=null) { Application.commandbar.ExecuteMso(“撤销”); } 还有其他解决办法吗