VB.NET Designer错误:如何(正确)继承继承表单的表单?

时间:2015-02-02 20:36:17

标签: vb.net forms class inheritance stack

我想制作一种模板Class BaseDialog,但是在创建继承MyDialog1的最终对话BaseDialog时,我会收到错误,然后对话框无法在设计模式下显示。 以下是我得到的错误列表。

at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument(IDesignerSerializationManager manager)
at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
at System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host) 

还有: 警告1无法为此文件显示设计器,因为其中的任何类都无法设计。设计者检查了文件中的以下类:

MyDialog1 --- The base class '[mynamespace].BaseDialog' could not be loaded.  Ensure the assembly has been referenced and that all projects have been built.

以下是我所制作的课程的示例(与.designer文件,<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _Dispose等一起用于这两个课程。

Public Class BaseDialog
Inherits System.Windows.Forms.Form
'
End Class

Public Class MyDialog1
Inherits BaseDialog
'
End Class

有人能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:1)

已经解决了。抱歉! http://support.microsoft.com/kb/967050

<强>原因

  

表单设计器需要已编译的程序集才能显示继承的表单。如果基本表单类包含在使用x64或Itanium选项编译的程序集中,则表单设计器无法打开它们。这是因为Visual Studio是一个32位进程,无法在64位(x64或Itanium)模块中执行代码。

解决

  

确保在使用&#34; AnyCPU&#34;编译的程序集中定义基本表单。构建选项。这允许在程序集中定义的表单类在32位进程(例如Visual Studio)或64位自定义进程中使用。