我正在为C#应用程序编写一个插件,并希望添加一个对话框窗口。我无法控制应用程序,而是应用程序使用反射动态加载插件。我是Windows窗体的新手(这是一个表单应用程序),但希望有一个对话窗口来控制我的插件。我怎么能做到这一点?
如果我只是通过visual studio向我的应用程序添加一个窗体,则不会出现任何形式。 Application.Run可能已被主应用程序调用。我对表格几乎是全新的。
如何使用我的插件启动表单(插件有一个在启动时调用的方法)并使其处于活动状态?
编辑:我应该澄清一下,当插件运行时,主应用程序应用程序窗口不会响应(甚至最小化或最大化窗口),因此可能是用于处理Windows消息的任何线程都是用于运行插件,暂时不处理任何Windows消息。因此我的表单需要自己的线程处理窗口消息。
答案 0 :(得分:1)
您需要从插件架构定义为入口点(应用程序将调用您的插件的位置)的任何方法初始化您的代码。
要显示表单,您可以在其上调用Show
方法。
// In a method that the plugin framework calls
myPluginForm.Show();
答案 1 :(得分:0)
加载插件的应用程序应该具有加载窗口的功能。查看API文档。另外,你知道是否有其他插件可以创建任意新窗口?通常,主机应用程序可以允许插件创建某些预定义的(由主机)类型的窗口(例如配置,加载文件等等)。
也可以通过programmaticaly创建一个新表单,然后加载它。请参阅此处获取示例:http://msdn.microsoft.com/en-us/library/system.windows.forms.form.aspx并查找“示例”部分。