delegate 未将对象引用设置到对象的实例

白纸黑字 2012-05-09 03:00:18
namespace D
{
class A
{
public delegate void Sign_StatusChangeHandler(Sign_StatusChangeEventArgs e);

public event Sign_StatusChangeHandler Sign_StatusChanged;

public void insert()
{
string trno="123445";
int week=1;
Sign_StatusChanged(new Sign_StatusChangeEventArgs(trno,week)); }

}
public class Sign_StatusChangeEventArgs : EventArgs
{
public string Center { get; set; }
public int WeekDay { get; set; }

public Sign_StatusChangeEventArgs(string center, int week)
{
Center = center;
WeekDay = week;

}

}
}

namespace D
{ public partial class StudentClass : DevExpress.XtraEditors.XtraForm
{
public StudentClass()
{
InitializeComponent();
}
A a=new A();
private void StudentClass_Load(object sender, EventArgs e)
{
a.Sign_StatusChanged +=new A.Sign_StatusChangeHandler(sign_Sign_StatusChanged);
}
private void sign_Sign_StatusChanged(Sign_StatusChangeEventArgs e)
{
MessageBox.Show(e.Center);
MessageBox.Show(e.WeekDay);

}

}
}
...全文
161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
白纸黑字 2012-05-09
  • 打赏
  • 举报
回复
谢谢各位 热心回复 已经解决问题了 谢谢了
烟波钓 2012-05-09
  • 打赏
  • 举报
回复
哪块报这个错误了
你的事件是注册了 但是没有调用啊 你没有调用Clss A的Insert()方法 也就没有调用事件哇
还有就是调用事件的时候

public void insert()
{
string trno="123445";
int week=1;
if(Sign_StatusChanged!=null)
{
Sign_StatusChanged(new Sign_StatusChangeEventArgs(trno,week));
}
}
整体来说 你的这块比较混乱 没理清楚

}
bdmh 2012-05-09
  • 打赏
  • 举报
回复
insert何时调用的,那时候肯定还没有绑定事件,访问为null
stonespace 2012-05-09
  • 打赏
  • 举报
回复
Sign_StatusChanged没有赋初始值,
白纸黑字 2012-05-09
  • 打赏
  • 举报
回复
上面不好意思错了 是这个
private void StudentClass_Load(object sender, EventArgs e)
{
a.Sign_StatusChanged +=new A.Sign_StatusChangeHandler(sign_Sign_StatusChanged);
}

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧