你應該檢查你的對象的初始化。雖然你的代碼確實使它看起來像所有的東西都在同一個類中,但我不確定爲什麼你會通過創建事件的頭痛而不是僅僅調用方法。然而,如果你在一個班級中提高事件並試圖在另一個班級中處理事件,那麼你可能遇到與我做過的事情相同的事情。讓我解釋...
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