4 votos

¿Cómo manejar eventos con ArcMap automatización?

Tenemos un montón de formularios escritos en C# como ArcMap comandos que se ejecutan felizmente en la forma normal de los botones de comando. Las formas de interactuar con el mapa mediante la creación de capas y simbologías, y por la escucha de las selecciones en las capas de actualizar su propia pantalla.

Para un número de molestos razones, ahora tenemos que convertir estos a correr a partir de un ejecutable externo, pero todavía interactuar con ArcMap. Estoy tratando de utilizar el enfoque de ArcMap "automatización" de manera que las formas son creadas por el archivo ejecutable, que también crea un ArcMap instancia y se lo pasa a las formas que les permitan interactuar.

Tengo pasado el proceso, por problemas de espacio de no ser capaz de utilizar la "nueva" creación de instancias en el código del formulario de ArcObjects (capas, etc) que ArcMap tiene para interactuar con, y el uso de IObjectFactory para obtener ArcMap para crear por mí en su lugar.

Pero estoy luchando con los eventos. El formulario debe escuchar a eventos como SelectionChanged en el mapa y actualización de sí mismo. Si puedo crear un controlador de eventos en el modo normal como

   dSelChangedE = new IActiveViewEvents_SelectionChangedEventHandler(OnSelectionChanged);
   m_pMap.SelectionChanged += dSelChangedE;

Entonces mi OnSelectionChanged método de evento en el formulario se inicia correctamente, pero ArcMap parece perder el evento en sí (incluso cuando estaba en ArcMap que la ha creado, por ejemplo, por interactivas de selección de función): la selección no se muestra en pantalla! Supongo que esto es un proceso-problemas de espacio de nuevo, pero no sé cómo conseguir alrededor de ellos. Yo no puedo ver ninguna manera de hacer IObjectFactory hacer que el controlador de eventos, por ejemplo.

Este hilo en el antiguo ESRI foros es similar el problema que estoy teniendo http://forums.esri.com/Thread.asp?c=93&f=993&t=213577 pero en mi caso es al revés: que puedo conseguir mi aplicación de control para escuchar los eventos, pero luego de Arcmap pierde la pista de ellos.

1voto

Dustin Puntos 6

Si alguien está interesado... esto sólo parece ser una de las muchas cosas que sólo se rompe en ArcMap 9.2.

Probamos en 9.3 y funciona muy bien, con un ligero retraso, a veces, en refrescar la pantalla, pero en general es útil. Obviamente algo terminal con el código de actualización de pantalla en 9.2.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X