Visio中ShapeAdded和SelectionAdded

SelectionAddedShapeAdded 事件的相似之处在于它们都在创建形状之后触发。它们的区别在于,当单个操作添加多个形状时它们的行为方式不同。假定一个 Paste 操作创建三个新建形状。ShapeAdded 事件触发三次并分别作用于三个对象中的每个对象。SelectionAdded 事件触发一次,并作用于所选的三个新建形状所在的 Selection 对象。

若要确定 ShapeAdded 事件由添加到页中的一个新建形状或一组形状、分组的一组现有形状还是由粘贴操作触发,可以使用 Application.IsInScope 属性。如果在传递 visCmdObjectGroupIsInScope 返回 True,则 ShapeAdded 事件由分组操作触发。如果在传递 visCmdUFEditPastevisCmdEditPasteSpecialIsInScope 返回 True,则 ShapeAdded 事件由粘贴操作触发。如果在传递所有这些参数时 IsInScope 返回 False,则该事件必然由添加到页中的新建形状触发

Private Sub vsoApplication_SelectionAdded(ByVal Selection As Visio.IVSelection)
    'MsgBox (Selection.Count)
End Sub

Private Sub vsoApplication_ShapeAdded(ByVal Shape As Visio.IVShape)

End Sub
原文地址:https://www.cnblogs.com/wuyuan2011woaini/p/4283252.html