下面的代码没有按预期工作,无法检测它是否处于设计模式(VS.Net 2003 - 控制库):

if (this.Site != null && this.Site.DesignMode == true)
{
//设计模式
}
别的
{
//运行
}

它用于复杂的用户控件,从另一个用户控件派生并在其上包含其他用户控件。
是否有另一种方法可以检测 VS.NET 2003 中的设计时间,或者上面的代码有什么问题?

最佳答案

DesignMode 不能在构造函数内部工作。一些替代方案(不确定它们是否在 1.1 中工作)是
if (System.ComponentModel.LicenseManager.UsageMode == System.ComponentModel.LicenseUsageMode.Designtime)
或者

调用 GetService(typeof(IDesignerHost)) 并查看它是否返回某些内容。

我对第一个选项的运气更好。

关于visual-studio-2003 - 如何检测 VS.NET 2003 控件库项目中的设计时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/144898/

10-11 16:23