打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MappedPortTCP

C# UserControl 判断DesignMode

(2011-03-12 11:27:13)

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

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

。言归正传,那怎样处理这种情况呢,一个简单的方法是写try和catch,把异常吃掉,还有一种方法就是判断是DesignMode还是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
{
    //runtimemode
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
初识DesignMode
给用户控件添加事件
关于页面中获取用户控件中的控件事件的方法
如何选择Html.RenderPartial和Html.RenderAction
WinForm窗体设计器错误解决方法
c#编程之UserControl:用户控件与主界面之间的事件响应
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服