2009-07-08 44 views

回答

12

我會去覆蓋OnLoad,所以你不用CPU週期來調用事件處理程序。

一般模式是重寫一個方法,如果你從控件繼承;否則,訂閱該活動。

但請記得調用基類'OnLoad方法,因爲這是Load事件調用的地方。

+3

根據微軟的說法,重載OnLoad方法是「在**派生**類中處理事件的首選技術」(請參閱​​http://msdn.microsoft.com/zh-cn/library/system.windows .forms.form.onload.aspx) – 2009-08-31 13:33:46

+2

@TroyMoon Thomas不是這麼說的嗎? – 2013-02-18 08:38:08

0

OnLoad是VB.NET中用於處理Load事件的默認事件處理程序。當我需要將代碼附加到加載事件時,我通常會覆蓋此方法。還有其他Page Life Cycle事件的默認功能:OnPreRender,OnInit等

+0

糟糕...剛纔意識到你問的是winform。 Disreguard頁面生命週期鏈接。同樣適用。 – regex 2009-07-08 07:23:23

+0

另外,它在其他.NET語言中也是如此,例如C#(.NET框架本身主要用C#編碼)。 – 2013-02-18 08:40:09

4

OnLoad方法是引發Load事件的方法。這是框架類中的標準模式,並且通常是推薦的模式 - 對於任何事件Foo,您都有一個虛擬受保護的方法OnFoo,該方法引發該事件;並且沒有其他方法直接引發事件,但總是調用OnFoo

如果您需要處理this上的事件,則覆蓋OnFoo通常既簡單又快捷。

相關問題