有两个窗体 form1、form2 在form2中编辑完数据后用委托传递事件给form1。在form1中的接收事件中操作一个treeview控件。
每当form1关闭后再打开,那么这时接收事件函数中对treeview操作就会报错,提示treeview对象已经被释放。事件类
public static class Middle
{
public delegate void SendMessage(string str);
public static event SendMessage sendEvent;
public static void DoSendMessage(string str)
{
sendEvent(str);
}
}
接收事件函数
private void Middle_sendEvent(string str)
{
treeview1.Nodes.Clear();
.......
}
每当form1关闭后再打开,那么这时接收事件函数中对treeview操作就会报错,提示treeview对象已经被释放。事件类
public static class Middle
{
public delegate void SendMessage(string str);
public static event SendMessage sendEvent;
public static void DoSendMessage(string str)
{
sendEvent(str);
}
}
接收事件函数
private void Middle_sendEvent(string str)
{
treeview1.Nodes.Clear();
.......
}
private void Middle_sendEvent(string str)
{
treeview1.Nodes.Clear();
.......
} 也该用静态试下吧
感觉可能的情况就是form1已经被释放
1.重新打开form1时没有重新给委托添加事件?
2.委托的事件只加没减?ps:代码给的太少了
Middle.sendEvent -= Middle_sendEvent;
Middle.sendEvent += new Middle.SendMessage(Middle_sendEvent);
Middle.DoSendMessage("abc");