c#设计器中的扩展控件

本文关键字:扩展 控件 | 更新日期: 2023-09-27 18:06:09

我扩展了一个控件,像这样

public partial class NewControl : OriginalControl
{
    public NewControl()
    {
    }
}
并将MyForm.Designer.cs中的这些行从
private OriginalControl control1;
this.control1 = new OriginalControl();

private NewControl control1;
this.control1 = new NewControl();

当我在设计器中打开表单时,我得到了这个错误:

加载设计器失败。检查源代码中的语法错误和检查是否所有引用都可用。

ICSharpCode.FormsDesigner.FormsDesignerLoadException:System.ComponentModel.Design.Serialization.CodeDomSerializerException:找不到类型"新控件"。请确保大会包含此类型的。如果这种类型是你的一部分开发项目,确保项目已经成功使用当前平台或任何CPU的设置构建。在System.ComponentModel.Design.Serialization.CodeDomSerializerBase.Error (IDesignerSerializationManager管理器,字符串例外文本,字符串帮助链接)System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression (IDesignerSerializationManager管理器,字符串名称,CodeExpression表达式)System.ComponentModel.Design.Serialization.CodeDomSerializer.DeserializeStatementToInstance (IDesignerSerializationManagermanager, CodeStatement语句)System.ComponentModel.Design.Serialization.CodeDomSerializer.Deserialize (IDesignerSerializationManager管理器,对象代码对象)ICSharpCode.FormsDesigner.Services.ProjectResourcesComponentCodeDomSerializer.Deserialize (IDesignerSerializationManager管理器,对象代码对象)System.Windows.Forms.Design.ControlCodeDomSerializer.Deserialize (IDesignerSerializationManager管理器,对象代码对象)ICSharpCode.FormsDesigner.Services.ProjectResourcesComponentCodeDomSerializer.Deserialize (IDesignerSerializationManager管理器,对象代码对象)System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.DeserializeName (IDesignerSerializationManager管理器,字符串名称,CodeStatementCollection语句)

System.ComponentModel.Design.Serialization.CodeDomSerializerException:变量'control1'要么未声明,要么从未声明过分配。在System.ComponentModel.Design.Serialization.CodeDomSerializerBase.Error (IDesignerSerializationManager管理器,字符串例外文本,字符串帮助链接)System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression (IDesignerSerializationManager管理器,字符串名称,CodeExpression表达式)System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression (IDesignerSerializationManager管理器,字符串名称,CodeExpression表达式)System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement (IDesignerSerializationManager管理器,CodeStatement语句)

在ICSharpCode.FormsDesigner.FormsDesignerViewContent.LoadDesigner ()
在ICSharpCode.FormsDesigner.FormsDesignerViewContent.LoadAndDisplayDesigner ()在ICSharpCode.FormsDesigner.FormsDesignerViewContent.LoadInternal (OpenedFile文件,流,流)ICSharpCode.SharpDevelop.Gui.AbstractViewContentHandlingLoadErrors.Load (OpenedFile文件,流)

我如何扩展我的控制错误?

c#设计器中的扩展控件

这可能纯粹是这两个控件所在的名称空间的问题。查看是否恰好有一个完全限定的类名可以解决您的问题。