我正在制作一个Autocad Plugin
运行良好的程序Windows Forms
并且我已经创建了一个user control (winforms)
可以在将来以我喜欢的任何形式进行复制。
问题是
从控件的代码中,如何获取运行该控件的应用程序实例?
(可能是纯粹的winforms问题)
代码:
在插件中,我可以毫无问题地获得 Autocad 应用程序实例。
此用户控件旨在separate assembly (dll)
在插件应用程序中被引用,因此它无法直接访问应用程序实例。
关于场景的一点解释:
Autocad 有一个Main Assembly
作为插件运行的。该程序集已实例化 Autocad 应用程序。
现在我有一些有用的表单控件可用于 Autocad,它们位于separate assembly
. (那是因为我想在我喜欢的许多不同的插件中使用它们)。
因此,Autocad 运行main assembly
并main assembly
运行separate assembly
.
为了正常工作,这些控件需要能够访问运行main assembly
.
今天我将应用程序用作控件中的一个属性,在使用它们之前我必须设置它。(如果我忘记设置,则会引发异常)。因为我无法控制带有参数的创建者。
我希望控件检测它们正在运行的应用程序,因此我避免了这种解决方法。