First create the delegates (class level):
private IActiveViewEvents_ItemAddedEventHandler m_ActiveViewEventsItemAdded;
private IActiveViewEvents_ItemDeletedEventHandler m_ActiveViewEventsItemDeleted;
private IActiveViewEvents_AfterItemDrawEventHandler m_ActiveViewEventsAfterItemDraw;
Wire the events inside class constructor:
//Create an instance of the delegate, add it to ItemAdded event
m_ActiveViewEventsItemAdded = new IActiveViewEvents_ItemAddedEventHandler(OnActiveViewEventsItemAdded);
((IActiveViewEvents_Event)(m_TheDoc.FocusMap)).ItemAdded += m_ActiveViewEventsItemAdded;
//Create an instance of the delegate, add it to ItemDeleted event
m_ActiveViewEventsItemDeleted = new IActiveViewEvents_ItemDeletedEventHandler(OnActiveViewEventsItemDeleted);
((IActiveViewEvents_Event)(m_TheDoc.FocusMap)).ItemDeleted += m_ActiveViewEventsItemDeleted;
//Create an instance of the delegate, add it to ItemDeleted event
m_ActiveViewEventsAfterItemDraw = new IActiveViewEvents_AfterItemDrawEventHandler(OnActiveViewEventsAfterItemDraw);
((IActiveViewEvents_Event)(m_TheDoc.FocusMap)).AfterItemDraw += m_ActiveViewEventsAfterItemDraw;
Create the Event handlers:
//Event handler
private void OnActiveViewEventsItemAdded(object Item)
{
//Code to execute
}
//Event handler
private void OnActiveViewEventsItemDeleted(object Item)
{
//Code to execute
}
//Event handler
private void OnActiveViewEventsAfterItemDraw(short index, IDisplay display, esriDrawPhase phase)
{
if (phase == esriDrawPhase.esriDPGeography)
{
//Code to execute
}
}