c# winform中的委托问题
委托的问题
我写了3个页面 其中主form窗体中用
doTask = new DOThread();
doTask.Log += tManage_Log;
AKC = new AKCMS();
AKC.Log += tManage_Log;
方法是下面
private void tManage_Log(object sender, cGatherTaskLogArgs e)
{
string pageName = "page" +e.TaskNode + ":" + e.TaskName;
SetValue(this.tabControl1.TabPages[pageName].Controls[0], "Text", e.strLog);
}
在doThread中加了这段 /// <summary>
/// 采集日志事件
/// </summary>
public event EventHandler<cGatherTaskLogArgs> e_Log;
internal event EventHandler<cGatherTaskLogArgs> Log
{
add { e_Log += value; }
remove { e_Log -= value; }
}
用e_Log(this, new cGatherTaskLogArgs(TaskNode, TaskName, ((int)cTool.LogType.Error).ToString() + "请检查网站信息是否配置出错")); 没什么问题
在AKCM中同样加 /// <summary>
/// 采集日志事件
/// </summary>
private event EventHandler<cGatherTaskLogArgs> e_Log;
internal event EventHandler<cGatherTaskLogArgs> Log
{
add { e_Log += value; }
remove { e_Log -= value; }
}
用e_Log(this, new cGatherTaskLogArgs(TaskNode, TaskName, ((int)cTool.LogType.Error).ToString() + "请检查网站信息是否配置出错")); 为什么会报错 说是为将对象引用到对象实例
------解决方案--------------------跟踪一下,TaskNode, TaskName可能为null
************************************