什么是对设计师打开了一个WinForms应用的形式运行的上下文(What is the run-co

2019-10-28 12:13发布

我不会在设计器中打开窗体。 我用我在回答这个问题提的技术...

Visual Studio中的WinForms设计师不实例化对象

...,以确定为什么形式不会在设计器中打开。

底线是,窗体的Load事件试图加载它从数据库中获取数据的一些自定义的业务对象。 发生故障的线路是...

暗淡connStr作为字符串= ConfigurationManager.ConnectionStrings(的connectionStringName).ConnectionString

...这将返回一个空引用异常。 它不能找到我命名的ConnectionString中虽然没有在设计模式在设计中打开表单的通话环境。

为什么是这样? ConnectionString中是窗体是在项目的app.config中,所有我能想到的是,设计师是在它自己的范围内打开和不使用的WinForms项目的app.config。 事实上,在突破方面的配置......管理者把两个的ConnectionStrings ...均未在我的项目的app.config。 它们如下...

?configurationmanager.ConnectionStrings(0).ConnectionString “数据源= \ SQLEXPRESS;集成安全性= SSPI; AttachDBFilename = | DataDirectory目录| ASPNETDB.MDF;用户实例=真”

?configurationmanager.ConnectionStrings(1).ConnectionString “数据源=” | DataDirectory目录| \ aspnetdb.vdb3 “”

......我提那些尽可能线索。 无论这些CONNECTSTRING是我的。 但他们做的每一个引用,我想在我的项目... SQL和VistaDB的支持两个DB提供程序。

所有这一切说...有确定的运行范围内正在使用的设计,这样我可以将数据添加到一个app.config所以它不会对这个错误破解的方法。 或(更好的)是有办法使设计人员使用个性化的app.config。 凡正在使用由位于设计师在app.config?

感谢您的帮助提前。

赛斯

Answer 1:

总结打破在以下Load事件设计师的代码:

if ( this.Site == null || !this.Site.DesignMode )
{
... // code that breaks the designer
}


文章来源: What is the run-context for a form opened in the designer for a winforms application