2010-11-08 1030 views

Respuesta

11
button1_click(null, new EventArgs()); 
+4

Y ore para que el argumento 'remitente' no se use. –

+1

si desea utilizar el remitente de lo que simplemente lo pone en lugar de nulo. – cichy

1

veces hago eso por hecho llamar a la función de controlador de eventos, eso es si realmente aplicado.
llamar Literalmente se siente:

button1_Click(this, new EventArgs()); 
2

desde dentro o fuera de la Form donde el Button es? lo más sencillo es simplemente llamar a la función:

Button1_Click(Button1, EventArgs.Empty); 
9

opción: utilizar PerformClick().

Echa un vistazo aquí: How to: Call a Button's Click Event Programmatically.

La ventaja aquí es que el comportamiento del evento será exactamente el mismo que el de un botón real (como opuesto a llamar directamente al button1_click).

Pero ninguna de estas opciones es la mejor en mi humilde opinión. Si necesita llamar al código del controlador de eventos, ¡necesita un nuevo método! Simplemente refactorice el antiguo button1_click en un nuevo método estándar y llámelo desde donde lo desee.

+1

+1: siempre he supuesto que 'PerformClick' es mejor que llamar directamente al controlador del botón, ya que el framework sabe mejor que usted en cuanto a algo especial que necesita hacer. También aborda el comentario de Ben Voigt sobre el argumento 'emisor'. – Powerlord

+1

+1 para el refactor del antiguo botón1_click, tiene tanto sentido – Spooks

Cuestiones relacionadas