自定义事件出错
代码执行至事件时出错,若我在外部定义事件nStatusLabel1.StatusChanged+=new NStatusLabel.eStatusChanged(nStatusLabel1_StatusChanged);则不不在报错。请问如何解决?
--------------------编程问答--------------------
public class NStatusLabel:Label
{
public NStatusLabel()
{
}
StatusEnum _status = StatusEnum.None;
public StatusEnum Status
{
get
{
return _status;
}
set
{
_status = value;
StatusChanged(this, null); --出错,提示“未将对象引用设置到对象的实例。”
}
}
//定义的委托
public delegate void eStatusChanged(object sender, EventArgs e);
//与委托相关联的事件
public event eStatusChanged StatusChanged;
--------------------编程问答-------------------- 监听 INotifyPropertyChanged 事件是一个.net编程模式,设计时尽量复用,而不必自己发明。
public StatusEnum Status
{
get
{
return _status;
}
set
{
_status = value;
OnStatusChanged(null);
}
}
public delegate void eStatusChanged(object sender, EventArgs e);
public event eStatusChanged StatusChanged;
private void OnStatusChanged(EventArgs e)
{
if(StatusChanged!=null) StatusChanged(this,e);
}
http://bbs.csdn.net/topics/390601894?page=1#post-395667842 --------------------编程问答-------------------- 同时可以看 msdn:
http://msdn.microsoft.com/zh-cn/library/system.componentmodel.inotifypropertychanged(v=vs.100).ASPX
或者你学习 c# 时的入门书,看看这个接口。这是必须讲解、必须熟记的.net知识。
补充:.NET技术 , C#