winform窗体继承后,子窗体无法打开视图设计器问题

本文探讨了C#中遇到的‘对象未设置实例’错误,提供了解决构造函数检查、load事件空指针问题的方法,并针对文件加载失败及平台兼容问题给出了排查建议。同时,涵盖了对象初始化、设计模式和编译器提示的编程实践改进。
摘要由CSDN通过智能技术生成

可能涉及到的现象有:

1、c#_未将对象引用设置到对象的实例

2、未将对象引用设置到对象的实例

3、文件中的类都不能进行设计,因此未能为该文件显示设计器

4、未能加载文件或程序集

123因为原因众多,在排除第三方控件的情况下,可按照如下方式解决:

1、检查父类的构造函数load事件,检查可空变量的使用和对控件的修改,按照空指针思路解决,添加if空判断。

注:编译器在打开视图设计器时会预加载构造函数和load事件,对默认值为null的对象的调用会加载失败,也算是提醒我们养成良好的编程习惯吧

例如下图,Test.frmInterface为null,Frm在打开设计器的时候,就会出现异常

public partial class BaseFrm : Form
{    
    private void BaseFrm_Load(object sender, EventArgs e)
    {
        Test.frmInterface.Do(); 
    }
}
public partial class Frm : BaseForm
{    
}

public static class Test
{
    public static FrmInterface frmInterface;
}
public interface FrmInterface
{
    void Do();
}

在父类BaseFrm的load事件中添加空指针判断

public partial class BaseFrm : Form
{    
    private void BaseFrm_Load(object sender, EventArgs e)
    {
        if(Test.frmInterface != null)
        {
            Test.frmInterface.Do(); 
        }    
        
    }
}
public partial class Frm : BaseForm
{    
}

public static class Test
{
    public static FrmInterface frmInterface;
}
public interface FrmInterface
{
    void Do();
}

2、关闭所有文档后,执行 “生成”-“清理解决方案”-“生成解决方案”即可恢复正常。

4未能加载文件或程序集的问题

请检查所有相关项目,右键-“属性”-“生成”-“目标平台”,思路为x86可以在x64平台下使用,但是x64无法在x86下使用,如果被调用项目为Any CPU,但是调用方项目为x64,也会出现该问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值