在设计时将自定义控件添加到容器的时候,自定义控件会运行构造方法和Load()方法的代码.有些代码并不是预期想要在设计时运行的,例如访问到一些未初始记的对象,这时候就会出错.因为需要在代码里判断当前是否是设计时,如果是设计时,则代码不运行.

 

  1. if (this.Site != null && this.DesignMode)  
  2. {  
  3.     //设计时  
  4. }  
  5. else 
  6. {  
  7.     //运行时  
  8. }  

代码只能放在Load()方法里,因为要构造方法中 Site 和 DesignMode 可能未正确初始化,导致错误结果.