2011-03-01 16 views

Respuesta

12

En C#, se puede añadir y eliminar controladores de eventos con bastante facilidad desde el código subyacente :

// Add event handler: 
txtName.OnTextChanged += new EventHandler(txtName_Changed); 

// Remove event handler: 
txtName.OnTextChanged -= new EventHandler(txtName_Changed); 
+1

jajajaja ... Nunca pensé en el - eliminaría un controlador ... gracias .. –

+0

Parece un poco extraño que primero tengas que crear una instancia de un nuevo Manejador de eventos antes de poder eliminarlo de la lista de eventos de ese control. –

+0

¿Hay alguna manera de hacer esto en un método al que no tengo acceso? Mi problema es que tengo un ensamblado de terceros que agrega un evento. Su controlador está protegido y debo anular ese comportamiento con mi propio controlador de eventos. –

3

En el código VB.NET:

RemoveHandler txtName.OnTextChanged, addressof txtName_Changed 

O en C#:

http://www.devnewsgroups.net/dotnetframework/t16784-remove-event-handlers-net.aspx

obj.Click += new EventHandler(BeAlert); // register an event handler 
obj.Click -= new EventHandler(BeAlert); // unregister the same event handler 
+0

lo siento, quise decir en C# –

+1

Aquí hay un ejemplo en C#: http://www.devnewsgroups.net/dotnetframework/t16784-remove-event-handlers-net.aspx – Rhapsody

Cuestiones relacionadas