<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: IActiveViewEvents SelectionChanged stops working after IDocumentEvents OpenDocume in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/iactiveviewevents-selectionchanged-stops-working/m-p/140994#M3674</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Neil,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks! I am a little confused as to why my code was failing because I thought I was removing the IActiveView event handlers correctly by listening to the IDocumentEvents::BeforeCloseDocument event then adding them back during the IDocumentEvents::NewDocument and IDocumentEvents::OpenDocument. However, using the method that you illustrated in your sample code (storing a local instance of the IActiveViewEvents_Event and IDocumentEvents_Event and replacing the handlers within the NewDocument and OpenDocument events) has resolved the problem. Thanks again!!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 02 Apr 2014 13:58:54 GMT</pubDate>
    <dc:creator>KeithWeber1</dc:creator>
    <dc:date>2014-04-02T13:58:54Z</dc:date>
    <item>
      <title>IActiveViewEvents SelectionChanged stops working after IDocumentEvents OpenDocument</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/iactiveviewevents-selectionchanged-stops-working/m-p/140992#M3672</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am developing an extension to ArcMap and trying to listen to the SelectionChanged event. There are several classes in my code that want to be notified when the selection changes so I was trying to write a simple wrapper to handle setting up the event handlers. The code works when ArcMap starts up and for the NewDocument event, but as soon as the OpenDocument event occurs, nothing works until the application is restarted. No exceptions (that I can tell) are thrown through the entire process. Any help would be greatly appreciated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;STRONG&gt;Update:&lt;/STRONG&gt;&lt;SPAN&gt; I also noticed that after the OpenDocument event occurs, All of the IDocumentEvents stop working.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;Imports ESRI.ArcGIS.ArcMapUI Imports ESRI.ArcGIS.Carto Imports ESRI.ArcGIS.Framework Imports System.Windows.Forms&amp;nbsp; Public Class MapEvents &amp;nbsp;&amp;nbsp;&amp;nbsp; Implements IDisposable&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Property _application As IApplication &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Property _activeViewListening As Boolean&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Event ActiveViewSelectionChanged() &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Event ActiveViewItemDeleted(ByRef Item As Object)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub New(ByRef application As IApplication) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _application = application &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim mxDocument As IMxDocument = application.Document &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StartListening(mxDocument) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _activeViewListening = False &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub Dispose() Implements IDisposable.Dispose &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim mxDocument As IMxDocument = _application.Document &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StopListening(mxDocument) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StopListening(mxDocument.ActiveView) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _application = Nothing &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub StartListening(ByRef mxDocument As IMxDocument) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (mxDocument Is Nothing) Then &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim documentEvents As IDocumentEvents_Event = mxDocument &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler documentEvents.NewDocument, AddressOf OnNewDocument &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler documentEvents.OpenDocument, AddressOf OnOpenDocument &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler documentEvents.BeforeCloseDocument, AddressOf OnBeforeCloseDocument &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub StopListening(ByRef mxDocument As IMxDocument) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (mxDocument Is Nothing) Then &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim documentEvents As IDocumentEvents_Event = mxDocument &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RemoveHandler documentEvents.NewDocument, AddressOf OnNewDocument &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RemoveHandler documentEvents.OpenDocument, AddressOf OnOpenDocument &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RemoveHandler documentEvents.BeforeCloseDocument, AddressOf OnBeforeCloseDocument &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub StartListening(ByRef activeView As IActiveView) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (_activeViewListening) Then &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (activeView Is Nothing) Then &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim activeViewEvents As IActiveViewEvents_Event = activeView &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler activeViewEvents.SelectionChanged, AddressOf OnActiveViewSelectionChanged &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler activeViewEvents.ItemDeleted, AddressOf OnActiveViewItemDeleted &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _activeViewListening = True &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Active View Listening = True") &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub StopListening(ByRef activeView As IActiveView) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If (activeView Is Nothing) Then &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim activeViewEvents As IActiveViewEvents_Event = activeView &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RemoveHandler activeViewEvents.SelectionChanged, AddressOf OnActiveViewSelectionChanged &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RemoveHandler activeViewEvents.ItemDeleted, AddressOf OnActiveViewItemDeleted &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _activeViewListening = False &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Active View Listening = False") &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub StartActiveViewListening() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim mxDocument As IMxDocument = _application.Document &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StartListening(mxDocument.ActiveView) &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub OnNewDocument() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StartActiveViewListening() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Exception &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim errorForm As ErrorForm = New ErrorForm(ex) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errorForm.Show() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub OnOpenDocument() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StartActiveViewListening() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Exception &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim errorForm As ErrorForm = New ErrorForm(ex) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errorForm.Show() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub OnActiveViewSelectionChanged() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Active View Selection Changed.") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RaiseEvent ActiveViewSelectionChanged() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Exception &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim errorForm As ErrorForm = New ErrorForm(ex) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errorForm.Show() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub OnActiveViewItemDeleted(Item As Object) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("Active View Item Deleted.") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RaiseEvent ActiveViewItemDeleted(Item) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Exception &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim errorForm As ErrorForm = New ErrorForm(ex) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errorForm.Show() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Function OnBeforeCloseDocument() As Boolean &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim mxDocument As IMxDocument = _application.Document &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StopListening(mxDocument.ActiveView) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Exception &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim errorForm As ErrorForm = New ErrorForm(ex) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errorForm.Show() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return False &amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&amp;nbsp;&amp;nbsp; End Class&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Apr 2014 17:40:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/iactiveviewevents-selectionchanged-stops-working/m-p/140992#M3672</guid>
      <dc:creator>KeithWeber1</dc:creator>
      <dc:date>2014-04-01T17:40:36Z</dc:date>
    </item>
    <item>
      <title>Re: IActiveViewEvents SelectionChanged stops working after IDocumentEvents OpenDocume</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/iactiveviewevents-selectionchanged-stops-working/m-p/140993#M3673</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Usually what is happening when someone asks this question is they are not rewiring the events when the document changes or they are not rewiring the events correctly.&amp;nbsp; When the document changes, you should unwire all event listeners that were added using the previous document and then rewire those event handlers using the new document.&amp;nbsp; If you don't, then your event handlers are still listening to the previous document's events and will cease to fire since that document is no longer the current document.&amp;nbsp; Here's an example of how to do it correctly:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Declarations&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private m_documentEvents As IDocumentEvents_Event &amp;nbsp;&amp;nbsp;&amp;nbsp; Private m_activeViewEvents As IActiveViewEvents_Event&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Extension Startup routine where events are initially wired&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim mxDocument As IMxDocument = DirectCast(ESRIContainer.Instance.Application.Document, IMxDocument) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_documentEvents = DirectCast(mxDocument, IDocumentEvents_Event) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_activeViewEvents = DirectCast(mxDocument.FocusMap, IActiveViewEvents_Event)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler m_documentEvents.NewDocument, AddressOf NewDocument &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler m_documentEvents.OpenDocument, AddressOf OpenDocument &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler m_activeViewEvents.ItemAdded, AddressOf ItemAdded &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler m_activeViewEvents.ItemDeleted, AddressOf ItemDeleted&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Events are unwired then rewired inside the NewDocument and OpenDocument event handlers&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub NewDocument() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RemoveHandler m_activeViewEvents.ItemAdded, AddressOf ItemAdded &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RemoveHandler m_activeViewEvents.ItemDeleted, AddressOf ItemDeleted&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim mxDocument As IMxDocument = DirectCast(ESRIContainer.Instance.Application.Document, IMxDocument) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_activeViewEvents = DirectCast(mxDocument.FocusMap, IActiveViewEvents_Event)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler m_activeViewEvents.ItemAdded, AddressOf ItemAdded &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler m_activeViewEvents.ItemDeleted, AddressOf ItemDeleted&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LoadOutputMapItems() &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub OpenDocument() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RemoveHandler m_activeViewEvents.ItemAdded, AddressOf ItemAdded &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RemoveHandler m_activeViewEvents.ItemDeleted, AddressOf ItemDeleted&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim mxDocument As IMxDocument = DirectCast(ESRIContainer.Instance.Application.Document, IMxDocument) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_activeViewEvents = DirectCast(mxDocument.FocusMap, IActiveViewEvents_Event)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler m_activeViewEvents.ItemAdded, AddressOf ItemAdded &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler m_activeViewEvents.ItemDeleted, AddressOf ItemDeleted&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LoadOutputMapItems() &amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I didn't include the code for the ItemAdded and ItemDeleted event handlers since it's not important, but these would be the events in my example that would stop firing if I didn't rewire them.&amp;nbsp; Also, technically the extension's Shutdown routine should do a final unwiring of the events but it really doesn't matter since ArcMap is closing at that point.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;One important thing to note is that the IMxDocument reference is taken from the IApplication reference each time it is needed.&amp;nbsp; If you set a global document reference then you run the risk of it also pointing to the previous document and not the document currently loaded.&amp;nbsp; In my example, I'm using a singleton object class that we use in all of our applications that handles this but you can use the application hook passed to your extension just as easily.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Apr 2014 18:25:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/iactiveviewevents-selectionchanged-stops-working/m-p/140993#M3673</guid>
      <dc:creator>NeilClemmons</dc:creator>
      <dc:date>2014-04-01T18:25:43Z</dc:date>
    </item>
    <item>
      <title>Re: IActiveViewEvents SelectionChanged stops working after IDocumentEvents OpenDocume</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/iactiveviewevents-selectionchanged-stops-working/m-p/140994#M3674</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Neil,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks! I am a little confused as to why my code was failing because I thought I was removing the IActiveView event handlers correctly by listening to the IDocumentEvents::BeforeCloseDocument event then adding them back during the IDocumentEvents::NewDocument and IDocumentEvents::OpenDocument. However, using the method that you illustrated in your sample code (storing a local instance of the IActiveViewEvents_Event and IDocumentEvents_Event and replacing the handlers within the NewDocument and OpenDocument events) has resolved the problem. Thanks again!!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2014 13:58:54 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/iactiveviewevents-selectionchanged-stops-working/m-p/140994#M3674</guid>
      <dc:creator>KeithWeber1</dc:creator>
      <dc:date>2014-04-02T13:58:54Z</dc:date>
    </item>
  </channel>
</rss>

