Created
June 5, 2014 23:33
-
-
Save Fhernd/db3473cf3643ce3c0b32 to your computer and use it in GitHub Desktop.
Mecanismo de almacenamiento interno para eventos.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Control : Component | |
{ | |
// Claves únicas eventos: | |
static readonly object mouseDownEventKey = new object(); | |
static readonly object mouseUpEventKey = new object(); | |
// Recupera un manejador de eventos. El menajedor recuperado | |
// está asociado con una clave | |
protected Delegate ObtenerEventHandler(object key){ ... } | |
// Agrega un menajedor de eventos: | |
protected void AgregarEventHandler(object key, Delegate handler) { ... } | |
// Remuee un menejador de eventos: | |
protected void RemoverEventHandler(object key, Delegate handler) { ... } | |
// Evento de movimiento de mouse MouseDown | |
public event MouseEventHandler | |
{ | |
add | |
{ | |
AgregarEventHandler(mouseDownEventKey, value); | |
} | |
remove | |
{ | |
RemoverEventHandler(mouseDownEventKey, value); | |
} | |
} | |
// Evento de movimiento de mouse MouseUp: | |
public event MouseEventHandler MouseUp | |
{ | |
add | |
{ | |
AgregarEventHandler(mouseUpEventKey, value); | |
} | |
remove | |
{ | |
RemoverEventHandler(mouseUpEventKey, value); | |
} | |
} | |
// Invocación del evento MouseUp: | |
protected void OnMouseUp(MouseEventArgs args) | |
{ | |
MouseEventHandler handler; | |
handler = (MouseEventHandler) ObtenerEventHandler(mouseUpEventKey); | |
if (handler != null) | |
{ | |
handler(this, args); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment