zoukankan      html  css  js  c++  java
  • C# UserControl 判断DesignMode

    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  

     

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

  • 相关阅读:
    shell 编写简单的整数计算器
    信号控制
    MySQL-索引及优化整理
    Java面试-Java容器有哪些
    C语言宏定义
    值类型与引用类型的区别
    C++虚函数简介
    DNS-域名解析
    扇区,簇,块区分
    Java合并两个数组为一个新数组
  • 原文地址:https://www.cnblogs.com/lenmom/p/3198626.html
Copyright © 2011-2022 走看看