当前位置: 首页 > 知识库问答 >
问题:

C#主表单引用异常

贝自怡
2023-03-14

我创建了一个UserControl并希望添加MainForm引用

  public partial class ConsolePage : UserControl
{
    public synForm mainForm = new synForm();

    public ConsolePage(synForm parentForm)
    {
        mainForm = parentForm();
        InitializeComponent();
    }

所以,问题是,只要我用C#代码创建UserControl(在哪里创建并不重要),它就可以很好地工作,但是当我试图从工具箱中从设计器中添加他时,我就会遇到一个异常。

我知道,我应该这样称呼他们

MyControl whatever = new MyControl(this); 

我知道如果我想从工具箱添加myControl,我应该在Form.Designer中纠正这个错误!

别恨我,我是编程和拼写方面的新手

编辑:<<<<<<

忘了写出我得到的错误:

System.ComponentModel.Design.Serialization.DesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)

System.ComponentModel.Design.Serialization.DesignerSerializationManager.System.ComponentModel.Design.Serialization.IDesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)

System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeInstance(IDesignerSerializationManager manager, Type type, Object[] parameters, String name, Boolean addToContainer)

System.ComponentModel.Design.Serialization.ComponentCodeDomSerializer.DeserializeInstance(IDesignerSerializationManager manager, Type type, Object[] parameters, String name, Boolean addToContainer)

System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression)

System.ComponentModel.Design.Serialization.CodeDomSerializer.DeserializeStatementToInstance(IDesignerSerializationManager manager, CodeStatement statement)
 System.ComponentModel.Design.Serialization.CodeDomSerializer.Deserialize(IDesignerSerializationManager manager, Object codeObject)
bei System.Windows.Forms.Design.ControlCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, Object codeObject)

System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.DeserializeName(IDesignerSerializationManager manager, String name, CodeStatementCollection statements) 

共有1个答案

吕森
2023-03-14

如果不知道错误消息(您只提供了堆栈跟踪)和parentForm()的内容,就不那么容易说了。但看起来parentForm()正在做设计器中不可能做的事情。

因此,您可以通过检查DesignMode(https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.component.DesignMode?redirectedfrom=msdn&view=netframework-4.7.2#system_componentmodel_component_designMode)来尝试不在设计模式下执行parentForm()。

public ConsolePage()
    {
        if (!DesignMode)
        {
            mainForm = parentForm();
        }
        InitializeComponent();
    }
 类似资料:
  • 我试图增加我的MySQL数据库模式的约束,为每个表添加外键约束。 表1:用户 INT(11)UNSIGNED NOT NULL AUTO_INCREMENT username`VARCHAR(50)不为空 主键() 表2:磁盘(这与用户有一对多的关系) INT(11)UNSIGNED NOT NULL AUTO_INCREMENT INT(11)不为空, 主键(,)索引(ASC) 约束 外键()

  • 问题内容: 当我使用发布请求发送大文件时,系统显示异常: 当我在Google中搜索帮助时,他们会提供一些帮助,例如, 我正在使用此代码,但问题仍未解决 我也在使用代码 但是没有结果 注意:-我正在使用Jetty-6.1.0 问题答案: 尝试通过设置系统属性 好的,您可以从网络应用中对其进行配置 在您的Web应用程序中添加文件,并在该文件中配置参数: 文件 版本7或更高版本 从版本7开始,Jetty

  • 希望有人能帮助我。我有下面的代码,我得到了抛出的异常:“OpenQA。硒。StaleElementReferenceException' 我在这段代码中遇到了一个异常,即:WeekDaysResults=Days。文本 错误: OpenQA。硒。StaleElementReferenceException:“StaleElement引用:元素未附加到页面文档 我尝试了一个试抓块,但不起作用。提前感

  • 本文向大家介绍浅谈C#中简单的异常引发与处理操作,包括了浅谈C#中简单的异常引发与处理操作的使用技巧和注意事项,需要的朋友参考一下 异常和异常处理 C# 语言的异常处理功能可帮助您处理程序运行时出现的任何意外或异常情况。异常处理使用 try、catch 和 finally 关键字尝试某些操作,以处理失败情况,尽管这些操作有可能失败,但如果您确定需要这样做,且希望在事后清理资源,就可以尝试这样做。公

  • 引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。 C++ 引用 vs 指针 引用很容易与指针混淆,它们之间有三个主要的不同: 不存在空引用。引用必须连接到一块合法的内存。 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。 引用必须在创建时被初始化。指针可以在任何时间被初始化

  • 由于解引用< code > NULL ptr (< code > NULL )在< code>C和< code>C 中都是未定义的行为,我想知道表达式< code > 如果也是未定义行为,那么链接答案中的OFFSETOF宏是如何工作的? 我一直认为< code>ptr- 我认为我的问题的答案在C和C中是相似的。