当前位置 : 主页 > 编程语言 > c语言 >

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

来源:互联网 收集:自由互联 发布时间:2021-06-24
我想制作一种类型的BaseDialog模板,但是当创建一个继承BaseDialog的最终对话框MyDialog1时,我得到错误,那么对话框无法在设计模式下显示. 以下是我得到的错误列表. at System.ComponentModel.Desig
我想制作一种类型的BaseDialog模板,但是当创建一个继承BaseDialog的最终对话框MyDialog1时,我得到错误,那么对话框无法在设计模式下显示.
以下是我得到的错误列表.

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

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

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

原因

The Form Designer requires a compiled assembly in order to display an inherited form. If the base form class is contained within an assembly that was compiled using the x64 or Itanium options, they cannot be opened by the Form Designer. This is because Visual Studio is a 32-bit process, and cannot execute code in a 64-bit (x64 or Itanium) module.

解析度

Make sure the base form(s) are defined in an assembly that is compiled using the “AnyCPU” build option. This allows form classes defined within the assembly to be used in either a 32-bit process (such as Visual Studio), or in a 64-bit custom process.

网友评论