2009-07-08 27 views

Respuesta

12

Iría para anular OnLoad, por lo que ahorrará los ciclos de la CPU para invocar el controlador de eventos.

El patrón general es anular un método, si hereda de un control; de lo contrario, suscríbase al evento.

Pero recuerde llamar al método de la clase base 'OnLoad, porque ahí es donde se invoca el evento Load.

+3

De acuerdo con Microsoft, la sobrecarga del método OnLoad es la 'técnica preferida para manejar el evento en una ** clase ** derivada' (ver http://msdn.microsoft.com/en-us/library/system.windows .forms.form.onload.aspx) –

+2

@TroyMoon ¿No es esto lo que dijo Thomas? –

0

OnLoad es el controlador de eventos predeterminado utilizado en VB.NET para gestionar el evento Load. Normalmente anulo este método cuando necesito adjuntar código al evento de carga. También hay funciones predeterminadas para los otros eventos Page Life Cycle: OnPreRender, OnInit, etc.

+0

Oops ... Me acabo de dar cuenta de que preguntabas por winform. Deshacer el enlace del ciclo de vida de la página. Lo mismo aplica sin embargo. – regex

+0

Además, es lo mismo en otros lenguajes .NET, como C# (el propio framework .NET estaba codificado en C#). –

4

El método OnLoad es el que genera el evento Carga. Es un patrón estándar en las clases de framework, y generalmente recomendado: para cualquier evento Foo, tiene un método de protección virtual OnFoo que genera ese evento; y ningún otro método de la clase plantea el evento directamente, pero siempre llama al OnFoo.

Si necesita manejar el evento en this, generalmente es más fácil y rápido anular OnFoo.

Cuestiones relacionadas