【发布时间】:2013-05-11 05:11:41
【问题描述】:
当我继承基本表单时,尝试打开设计器时出现以下错误:
“无法显示此文件的设计器,因为没有 可以设计其中的类。设计师检查了 文件中的以下类: frmTest --- 基类 无法加载“TestInherit.BaseForm”。确保组件有 已被引用,并且所有项目都已构建。”
在设计器代码中,我使用“Inherits BaseForm”(= Windows 窗体)而不是默认的“Inherits System.Windows.Forms.Form”。
我在这里做错了什么?
注意:如果需要,可以在此处下载测试项目:https://dl.dropboxusercontent.com/u/5391091/TestInherit.rar
注意:我想要/需要同一程序集中的所有(基本)表单。
注意:使用 Telerik 表单时,同样的技术可以正常工作。请参阅此示例项目,使用 Telerik:https://dl.dropboxusercontent.com/u/5391091/TestInheritTelerik.rar
【问题讨论】:
-
您在打开设计表单之前是否进行了构建?
-
将基础表单放在单独的程序集中,构建它,并将其引用到必须继承
BaseForm的程序集 -
老实说,将 BaseForm 放在另一个程序集中并不是一个好选择,因为这两种表单都使用受保护的共享类(只能从同一个程序集中访问)。
-
如果你想使用可视化设计器,你别无选择。
protected成员在与基类相关的类中可见。听起来您在谈论internal成员。如果是这样的话,有a way around that作为墙 -
您能在 Telerik 表单的 .dll 中添加代码(如:放入您自己的代码)吗?!
标签: c# vb.net winforms inheritance