我一个Form的构造函数里用到了一个类,
只有在运行时才会被初使化,当我想打开Design View的时候, 因为没有初使化,
会报NullReferenceException.在代码里有办法判断是设计时还是运行时吗?

解决方案 »

  1.   

    只要在判断下你的那个类是否的NULL就可以了啊。如果是NULL就先不管他,帮他处理下。这样就不会报错了。也就是如果是NULL就表示你的那个类没初始化,所以你的Form就没有运行嘛。否则就是运行了啊。你试试看!!
      

  2.   

    运行时:代码正在运行的时期。在运行时,不可编辑过程码。 
    设计时:开发环境中编译应用程序的时期,此时,添加控件、设置控件或窗体属性等。而在运行时,则像用户一样与应用程序交互作用。 你的这个问题我自己没有试过,你可以尝试try该类的实例(如果是静态类直接引用其一个方法)如果catch到异常就是运行时否则就是设计时。不知道这个想法是否可行
      

  3.   

    记得有ifdef这样的定义可以使用瞎说的
    赚10分走人
      

  4.   


    这个很好。但是在继承的情况下不好用。
    public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();            if (this.DesignMode)
                {
                    //throw new Exception("Design");
                }
                else
                {
                    throw new Exception("Run");
                }
            }
        }public partial class Form1 : Form2
        {
            public Form1()
            {
                InitializeComponent();
            }
        }
    这时候打开Form2的Design View没问题, 但是打开Form1的时候还是会报错。