How to

find out whether event handler is registered

Published: 30. November 2011 | Updated: 30. November 2011
License: Microsoft Public License (MS-PL)
Categories: Framework » Events
Tags: C# Events
Was this snippet helpful for you? YESYES / NONO

Event

public event EventHandler MyEvent;

Method

public bool IsRegistered(Delegate handler)
{
    return MyEvent != null && MyEvent.GetInvocationList().Contains(handler);
}

Using

var obj = new MyClass();

Console.WriteLine(obj.IsRegistered((EventHandler)MyEventHandler));

obj.MyEvent += MyEventHandler;

Console.WriteLine(obj.IsRegistered((EventHandler)MyEventHandler));

obj.MyEvent -= MyEventHandler;

Console.WriteLine(obj.IsRegistered((EventHandler)MyEventHandler));

Event handler

private static void MyEventHandler(object sender, EventArgs e)
{
            
}
Console Output:
False
True
False
Send us feedback about this snippet »



Related Snippets: