你应该检查你的对象的初始化。虽然你的代码确实使它看起来像所有的东西都在同一个类中,但我不确定为什么你会通过创建事件的头痛而不是仅仅调用方法。然而,如果你在一个班级中提高事件并试图在另一个班级中处理事件,那么你可能遇到与我做过的事情相同的事情。让我解释...
MDIParent - 包含子窗体的实例化代码。还有代码将孩子的事件处理程序连接到MDIParent上的代码。
Form x = new MyTestForm();
x.OnMyEvent += this.HandleEvent(myEventArgs);
MDIChild - 包含我们用来创建事件并实际触发它的代码。
public MyTestForm()
{
public event EventHappened MyEventHandler;
}
稍后在代码中,我们实际上引发事件。
MyEventHandler(new MyEventArgs(this, "some message");
,我是用我所有的事件处理程序,我们使用更新状态栏的遇到的问题,是,接线,事件没有发生,直到形式完全初始化。这意味着在我们实际将事件连接到某个事物时,所有设置表单的工作都已完成!
我问这是怎么解决的?好吧,我把所有的初始化代码都移到了一个单独的方法中,并从构造函数中移出。我们调用构造函数来创建表单的实例,连接事件,然后运行所有表单的创建任务。
希望这可以帮助别人!我花了好几天的时间试图弄清楚为什么我的事件是空的,我可以清楚地看到他们被分配了!
生病尝试了一下,但它也抛出事件,如果它是真的 – Shredder2500 2012-02-24 18:37:58