简体   繁体   English

设计器中的C#扩展控件

[英]c# extended control in designer

I extended a control like so 我像这样扩展了控件

public partial class NewControl : OriginalControl
{

    public NewControl()
    {

    }

}

and changed these lines in the MyForm.Designer.cs from 并从以下位置更改了MyForm.Designer.cs中的这些行

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

to

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

How ever when I open my form in designer I get this error: 但是,当我在设计器中打开表单时,却遇到此错误:

Failed to load designer. 无法加载设计器。 Check the source code for syntax errors and check if all references are available. 检查源代码中的语法错误,并检查是否所有引用均可用。

ICSharpCode.FormsDesigner.FormsDesignerLoadException: System.ComponentModel.Design.Serialization.CodeDomSerializerException: Could not find type 'NewControl'. ICSharpCode.FormsDesigner.FormsDesignerLoadException:System.ComponentModel.Design.Serialization.CodeDomSerializerException:找不到类型'NewControl'。 Please make sure that the assembly that contains this type is referenced. 请确保引用了包含此类型的程序集。 If this type is a part of your development project, make sure that the project has been successfully built using settings for your current platform or Any CPU. 如果此类型是开发项目的一部分,请确保已使用当前平台或任何CPU的设置成功构建了该项目。 at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.Error(IDesignerSerializationManager manager, String exceptionText, String helpLink) at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression) at System.ComponentModel.Design.Serialization.CodeDomSerializer.DeserializeStatementToInstance(IDesignerSerializationManager manager, CodeStatement statement) at System.ComponentModel.Design.Serialization.CodeDomSerializer.Deserialize(IDesignerSerializationManager manager, Object codeObject) at ICSharpCode.FormsDesigner.Services.ProjectResourcesComponentCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, Object codeObject) at System.Windows.Forms.Design.ControlCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, Object codeObject) at ICSharpCode.FormsDesigner.Services.ProjectResourcesComponentCodeDomSerializer.Deserialize(IDesignerSeriali 在System.ComponentModel.Design.S。 System.ComponentModel.Design.Serialization.CodeDomSerializer.Deserialize(IDesignerSerializationManager管理器,Object codeObject)处的ICSharpCode.FormsDesigner.Services.ProjectResourcesComponentManager System.Windows.Forms.Design.ControlCodeDomSerializer.Deserialize(IDesignerSerializationManager管理器,Object codeObject)位于ICSharpCode.FormsDesigner.Services.ProjectResourcesComponentCodeDomSerializer.Deserialize(IDesignerSeriali zationManager manager, Object codeObject) at System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.DeserializeName(IDesignerSerializationManager manager, String name, CodeStatementCollection statements) zationManager管理器,位于System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.DeserializeName(IDesignerSerializationManager管理器,字符串名称,CodeStatementCollection语句)处的Object codeObject)

System.ComponentModel.Design.Serialization.CodeDomSerializerException: The variable 'control1' is either undeclared or was never assigned. System.ComponentModel.Design.Serialization.CodeDomSerializerException:变量'control1'未声明或从未分配。 at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.Error(IDesignerSerializationManager manager, String exceptionText, String helpLink) at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression) at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression) at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager manager, CodeStatement statement) 在System.ComponentModel.Design.S。 System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager管理器,CodeStatement语句)上的.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager管理器,字符串名称,CodeExpression表达式)

at ICSharpCode.FormsDesigner.FormsDesignerViewContent.LoadDesigner() 在ICSharpCode.FormsDesigner.FormsDesignerViewContent.LoadDesigner()
at ICSharpCode.FormsDesigner.FormsDesignerViewContent.LoadAndDisplayDesigner() at ICSharpCode.FormsDesigner.FormsDesignerViewContent.LoadInternal(OpenedFile file, Stream stream) at ICSharpCode.SharpDevelop.Gui.AbstractViewContentHandlingLoadErrors.Load(OpenedFile file, Stream stream) ICSharpCode.SharpDevelop.Gui.AbstractViewContentHandlingLoadErrors.Load(OpenedFile文件,流流)的ICSharpCode.FormsDesigner.FormsDesigner.FormsDesignerViewContent.LoadInternal(OpenedFile文件,流流)的ICSharpCode.FormsDesigner.FormsDesignerViewContent.LoadAndDisplayDesigner()

How am I extending my control wrong? 我怎么会错误地扩展控制?

This may purely be an issue with the namespaces in which these two controls appear. 这可能纯粹是出现这两个控件的名称空间的问题。 See if a fully qualified class name happens to solve you issue. 查看是否有完全合格的班级名称解决您的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM