控制事件 ElementTypeDuplicated

Controlling the event ElementTypeDuplicated

我正在控制事件 "application.ControlledApplication.ElementTypeDuplicated" 并且在输入新类型的名称后引发此事件,但在那之后我想覆盖对话框的结果(ID:"IDD_SYMBOL_ATTRIB") 在事件 ElementTypeDuplicated 之前引发。我已经尝试获取一个 Object Args 并在订阅事件 ElementTypeDuplicated 的方法中覆盖结果,但它不起作用。有办法吗?

示例:

    public void OnElementTypeDuplicated(object o, ElementTypeDuplicatedEventArgs args)
    {
        //doing things 
        duplicatingTypeArgs.OverrideResult(0);

            }
        }
    }

    public void OnDialogDuplicatingELement(object o, DialogBoxShowingEventArgs args)
    {

        if (args.DialogId=="IDD_SYMBOL_ATTRIB")
        {
                    duplicatingTypeArgs = args;
        }
    }

还没有测试过,但是如何使用 "Element.GetChangeTypeElementAddition" 来实现 IUpdater 而不是订阅复制类型事件

您可以在复制符号之前订阅 DocumentChanged 事件。这将为您提供所有新创建元素的元素 ID。 place family instance sample.

提供了一个使用示例

重复后,再次退订。

您可以使用 Idling event 在复制终止时收到通知。