对以下文章所展示的代码进行了修改,当前展示的代码可直接复制使用。
由于本人初学,下列语言为个人理解,如有错误请指正。
《引用1》中:
- 使用模态对话框,或者尽量保证事件在ExternalCommand的Execute函数或者ExternalApplication的OnStartup函数里面注册。
- 如果一定要使用非模态对话框,那么请使用ExternalEvent事件的Raise函数,强迫程序进入Revit主线程,然后在里面进行注册事件。
因为《引用1》和《引用2》都没有OnStartup,所以再没有例子的情况下暂时不会使用。
《原文章出处》:双事件使用时,在IExternalCommand的Execute函数中进行了注册,在各自的响应函数中进行了注销。
《引用1》:为WinFrom程序,并且同时有Raise函数和注册/注销行为,因为没用过WinFrom感觉不会用、没看懂。。。
《引用2》:为WPF程序,并且使用非模态对话框的使用情况,没有注册和注销行为。