¿Cómo se puede utilizar el evento System.ComponentModel.CancelEventArgs
? Supongamos que tenemos el siguiente código:¿Cómo se pueden usar eventos como CancelEventArgs?
public event CancelEventHandler EventTest = delegate { };
public void MakeSomethingThatRaisesEvent()
{
CancelEventArgs cea = new CancelEventArgs();
EventTest(this, cea);
if (cea.Cancel)
{
// Do something
}
else
{
// Do something else
}
}
¿Qué ocurre si hay más de un delegado registrado en el evento? ¿Hay alguna forma de obtener los resultados de todos los suscriptores?
Esto se usa en Winforms (al menos) a veces. Si no es posible obtener todos los valores, ¿solo suponen un suscriptor del evento?
¡Esto! Gracias – FerranB
No es un voto. (Me doy cuenta de que fue un giro de la frase, pero podría malinterpretarse). Si algún suscriptor establece Cancelar en verdadero, entonces es verdadero al final. Ningún suscriptor debe establecer Cancelar en falso porque eso anularía a un suscriptor anterior. –