C# UserControl 判断DesignMode

 

.Net开发UserControl时,我们经常需要得知当前是Design Mode还是Runtime Mode。

在Design Mode时,.Net并不会运行你的系统,它只会把当前控件,及其所有父类都初始化一遍,一般包括其构造函数,OnLoad(),OnInit()等方法。 如果在OnLoad或者OnInit中,写了一些只有在Runtime Mode时才能执行成功的代码,那么当你在Form的设计模式下查看这个窗口时,很有可能会得到一个"对象为空或未初始化"的错误,从而无法创建该控件的实例。我还遇到过更狠的情况,就是我写的控件在Runtime Mode时,一切正常,但在Design Mode下,一打开该文件,立刻重启VS2005,暴汗啊,这么强悍的控件,我是不是应该佩服自己。言归正传,那怎样处理这种情况呢,一个简单的方法是写try和catch,把异常吃掉,还有一种方法就是判断是Design Mode还是Runtime Mode,做不同的处理。代码如下:

//运行环境:Windows7 + VS2005 + Framework2.0SP2

//直接用this.DesignMode == true无效

if (this.GetService(typeof(IDesignerHost)) != null || System.ComponentModel.LicenseManager.UsageMode == System.ComponentModel.LicenseUsageMode.Designtime)

{      //design mode

}

else

{

//runtime mode

}

转自  http://blog.sina.com.cn/s/blog_5421dfd20100fx3d.html

放到自己博客当中,必备查询。

最新文章

  1. java web学习总结(三十一) -------------------EL表达式
  2. time step和采样频率的关系
  3. 【转】理解inode
  4. 【poj2983】 Is the Information Reliable?
  5. th:each
  6. python获取系统时间
  7. PHP基础设计模式——工厂模式
  8. KMP精讲
  9. rootvg 镜像
  10. hdu-4418-Time travel-高斯+概率dp
  11. linux的命令使用记录
  12. 字符串长度截取换行/n
  13. iOS屏幕适配(尺寸适配)
  14. 地图API地址  百度地图开放平台
  15. Java 执行远程主机shell命令代码
  16. select 多选 (EasyUI)
  17. LeetCode 973 K Closest Points to Origin 解题报告
  18. php二分法查找
  19. springcloud 入门 1 (浅谈版本关系)
  20. LiveCD及Casper调研

热门文章

  1. jquery 事件绑定以及解绑定
  2. JAVA解析各种编码密钥对(DER、PEM、openssh公钥)
  3. LintCode "Coins in a Line"
  4. 242. Valid Anagram
  5. Hbase的安装(hadoop-2.6.0,hbase1.0)
  6. NeHe OpenGL教程 第二十课:蒙板
  7. 0808HTML
  8. mrp功能分类
  9. mysql函数计算地表两点间距离
  10. 转__Android Studio ,基于intellij idea