打开设计窗体报错:To prevent possible data loss before loading the designer
作者:C/S框架网  发布日期:2011/04/25 18:18:15
打开设计窗体报错:To prevent possible data loss before loading the designer

任何使用VS开发工具的朋友都会遇到此问题, 比如窗体的Load事件内有如下代码:

C# Code:

private void frmBase_Load(object sender, EventArgs e)
{
   this.DoSetFont(SystemConfig.CurrentConfig.FontSize, true);
}


从这段代码可以看出问题吗? 编译后运行程序绝对没问题! 因为SystemConfig.CurrentConfig对象在运行程序第一时间已被实例化. 但是在设计环境下会报错:

To prevent possible data loss before loading the designer, the following errors must be resolved:
Object reference not set to an instance of an object.


贴图图片


为什么呢? 简直不可思议! VS开发工具在打开设计窗体时会检查或运行构造器, Load, Shown等事件内的代码! 当这些事件使用到未被实例化的对象或变量时, 错误呈现在你眼前. Delphi,VB等开发工具根本没这种情况.

无奈, 将代码改为:

C# Code:

private void frmBase_Load(object sender, EventArgs e)
{
   if (SystemConfig.CurrentConfig!=null)
     this.DoSetFont(SystemConfig.CurrentConfig.FontSize, true);
}


或者SystemConfig.CurrentConfig对象在声明变量时实例化.





C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务


上一篇 下一篇