在vs开发中,自定义控件若重写OnLoad, PreLoad等方法,在设计界面时会报Null异常,原因是在VS“设计时”状态会自动运行OnLoad等方法,
一些空的对象就会报错。 网上说加上DesignMode就行了。比如:
 protected override void OnLoad(EventArgs e)
    {
      
base.OnLoad(e);
      
if (!DesignMode)
        Init();
    }

但DesignMode并不常常发挥作用。
这时我们需要重写DesignMode属性
 public new bool DesignMode
    {
      
get { return System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv"; }
    }