C#中打开设计视图时报"未将对象引用设置到对象的实例"
2013-07-22 17:01
459 查看
通常情况下,若是你将用户控件写好了放入窗体中,若是有不合理的代码,则会弹出错误提示框,不让你放。若是你之前只是随便加了一个用户控件,并且没有什么问题,但后来你又把控件改坏掉了,那么你打开就会报错(在窗体内显示错误,选择"忽略并继续"还是可以打开设计界面的)。
一般在设计时打开设计视图报"未将对象引用设置到对象的实例",基本上都是你在用户控件的构造方法及Form Load事件中写入了计算的代码。如以下代码放入到别的控件中就会报错:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CommonControls
{
public partial class ucAddUser : UserControl
{
public ucAddUser()
{
InitializeComponent();
}
public UserInfo userInfo
{
get;
set;
}
private void ucAddUser_Load(object sender, EventArgs e)
{
//加载的时候就显示这个值
this.textBox1.Text = userInfo.UserName;
this.textBox2.Text = userInfo.UserTel;
}
}
}
此界面自己打开来是不会有问题的,但若是放入其它窗体中就会报错。因为自己加载时不会加载_Load事件,但若是你放入其它控件中,在加载控件时,会加载_Load事件,而我们的userInfo又没有赋值,故在_Load做this.textBox1.Text = userInfo.UserName;的时候就会报错,因为userInfo为空。
一般不要在用户控件的构造方法及Form Load事件中写入计算的代码
若是非要这样做,也是可以解决的:
private void ucAddUser_Load(object sender, EventArgs e)
{
if (DesignMode)
return;
if (string.Compare(System.Diagnostics.Process.GetCurrentProcess().ProcessName, "devenv") == 0)
{
return;
}
//加载的时候就显示这个值
this.textBox1.Text = userInfo.UserName;
this.textBox2.Text = userInfo.UserTel;
}
一般在设计时打开设计视图报"未将对象引用设置到对象的实例",基本上都是你在用户控件的构造方法及Form Load事件中写入了计算的代码。如以下代码放入到别的控件中就会报错:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CommonControls
{
public partial class ucAddUser : UserControl
{
public ucAddUser()
{
InitializeComponent();
}
public UserInfo userInfo
{
get;
set;
}
private void ucAddUser_Load(object sender, EventArgs e)
{
//加载的时候就显示这个值
this.textBox1.Text = userInfo.UserName;
this.textBox2.Text = userInfo.UserTel;
}
}
}
此界面自己打开来是不会有问题的,但若是放入其它窗体中就会报错。因为自己加载时不会加载_Load事件,但若是你放入其它控件中,在加载控件时,会加载_Load事件,而我们的userInfo又没有赋值,故在_Load做this.textBox1.Text = userInfo.UserName;的时候就会报错,因为userInfo为空。
一般不要在用户控件的构造方法及Form Load事件中写入计算的代码
若是非要这样做,也是可以解决的:
private void ucAddUser_Load(object sender, EventArgs e)
{
if (DesignMode)
return;
if (string.Compare(System.Diagnostics.Process.GetCurrentProcess().ProcessName, "devenv") == 0)
{
return;
}
//加载的时候就显示这个值
this.textBox1.Text = userInfo.UserName;
this.textBox2.Text = userInfo.UserTel;
}
相关文章推荐
- 黄聪:VS2010编辑C#未启动,打开设计视图时报"未将对象引用设置到对象的实例"
- c# 在SelectionChanged事件中,点击标题头{"未将对象引用设置到对象的实例。"}报错的解决办法。
- Web页面设计时提示"创建控件出错,未将对象引用设置到对象的实例”的错误解决办法
- C#中出现"System.NullReferenceException: 未将对象引用设置到对象的实例"
- C# "未将对象引用设置到对象的实例"异常的原因 总结
- "未将对象引用设置到对象的实例"异常的原因
- C# Server.MapPath 未将对象引用设置到对象的实例
- System.Web.HttpContext.Current.Server.MapPath("~/upload/SH") 未将对象引用设置为实例对象
- C# 未将对象引用设置到对象的实例
- C#未将对象引用设置到对象的实例
- HttpContext.Current.Server.MapPath("") 未将对象设置到引用的实例异常。
- ASP.NET Forum 中禁用含有子版块的版块后产生的"未将对象引用设置到对象的实例"异常的处理方法
- C#一般处理程序设置和读取session(session报错“未将对象引用设置到对象的实例”解决)
- 出现"未将对象引用设置到对象的实例“问题的总结
- c# timer控件中 引发事件 未将对象引用设置到对象的实例
- vs2010 视图 aspx页面创建控件时出错 未将对象引用设置到对象的实例
- 加载设计器错误——未将对象引用设置到对象的实例 之解决方法
- C# 关于“未将对象引用设置到对象的实例。”错误
- Parallel.ForEach 多线程 声明失败 "未将对象引用设置到对象的实例"
- "未将对象引用设置到对象的实例"异常的原因