Difference between OnLoad method and Load event?

2019-04-05 12:53发布

问题:

What is the difference between OnLoad method and Load event? I am developing WinForm controls. Should I register to Load event or override the OnLoad method? What are the advantages and the disadvantages of each one?

回答1:

I'd go for overriding OnLoad, so you spare the CPU cycles to invoke the event handler.

The general pattern is to override a method, if you inherit from a control; otherwise, subscribe to the event.

But remember to call the base class' OnLoad method, because that's where the Load event invoked.



回答2:

OnLoad method is the one that raises Load event. It's a standard pattern in framework classes, and a generally recommended one - for any event Foo, you have a virtual protected method OnFoo which raises that event; and no other method of the class raises the event directly, but always calls OnFoo.

If you need to handle the event on this, it's usually both easier and faster to override OnFoo.



回答3:

OnLoad is the default event handler used in VB.NET to handle the Load event. I typically override this method when I need to attach code to the load event. There are also default functions for the other Page Life Cycle events: OnPreRender, OnInit, etc.