2010-02-05 18 views

Respuesta

4

Depende de lo que esté tratando de lograr. Si tiene varios manejadores de eventos que deben manejar eventos para varios controles durante el tiempo de vida de un formulario/objeto, WithEvents and Handles es la manera más fácil de hacerlo. El idioma hará todo el trabajo sucio para usted en términos de configuración del evento. Por otro lado, si tiende a desconectarse de los eventos durante la vida útil del formulario, AddHandler y RemoveHandler son mejores opciones.

1

Depende realmente de lo que esté haciendo, si desea vincular/separar dinámicamente manejadores de eventos, entonces, si usa AddHandler/RemoveHandler, la manera de hacerlo es utilizar Handles perfectamente bien.

4

Prefiero WithEvents/Handles en situaciones en las que es aplicable, porque expresa mejor lo que se supone que debe hacer el código. Una advertencia con "WithEvents/Handles" es que cualquier objeto que reciba eventos de un objeto de mayor duración debe implementar IDisposable y debe establecer todas sus variables WithEvents en Nothing cuando se desecha, para garantizar que todos los eventos estén sin conexión. La separación de eventos cuando se usa AddHandler/RemoveHandler es igual de necesaria, pero quizás más obvia. Al usar WithEvents es algo más fácil de olvidar.

Por cierto, no conozco ninguna forma de configurar automáticamente todas las variables WithEvents en Nothing. Parecería un requisito bastante común, pero por alguna razón Microsoft no incluyó esa característica en VB.

Cuestiones relacionadas