更改c#表单设计而不创建此类表单的实例

时间:2014-08-18 21:19:02

标签: c# winforms

所以......我需要为我正在使用的应用程序构建插件架构,插件架构实际上是使用接口构建的,并且通常运行良好。

我面临的一个独特问题是允许插件更改表单的设计,为了论证,添加更多控件。

此示例中的插件是在主要主机表单的onload事件期间加载的。

现在,我可以以某种方式更改应用程序中的任何目标表单并添加额外的控件,而无需创建此类表单的实例,这意味着在创建实例之前已经完成了ui修改。

我正在考虑使用反射来搜索我的目标表单的应用程序.....这是我难倒的地方,我如何更改找到的表单,并对任何新实例进行编辑?

2 个答案:

答案 0 :(得分:2)

让插件写入应该出现在给定表单上的控件列表,然后在创建实例时从该列表中读取表单类。

答案 1 :(得分:2)

你可以通过继承来做到这一点。

假设插件中的表单名为pluginForm。在您的应用中,您需要创建一个继承自pluginForm而非System.Windows.Form的表单。

设计师也会工作。除非您将修改器更改为Protected

,否则控件将被锁定