Проблема c ArcCatalog и MVS2005

0 голосов
спросил 06 Дек, 07 от cyberface (1,380 баллов) в категории Программные продукты Esri
У меня возникла проблема с разработкой DLL для ArcCatalog в Microsoft Visual Studio 2005. Проблема возникает, когда к проекту присоединяю форму. В модуле формы не инициализируется IGxApplication.
При разработке dll для ArcMap IApplication в модуле формы инициализировалась без проблем таким образом:

 Dim t As Type = Type.GetTypeFromProgID("esriFramework.AppRef")
 Dim obj As System.Object = Activator.CreateInstance(t)
 Dim app As ESRI.ArcGIS.Framework.IApplication = obj

А в ArcCatalog так не выходит.
Заранее благодарен за помощь.

PS (Проект типа Base Command)

3 Ответы

0 голосов
ответил 06 Дек, 07 от Alexander1 (32,520 баллов)
Create a property on the form class and set it before showing the form.
0 голосов
ответил 07 Дек, 07 от cyberface (1,380 баллов)
В модуле формы делаю следующим образом:

Dim cls As clsMain 'clsMain-основной модуль DLL
cls = new  clsMain
Dim app As IGxApplication
'GxApp-в основном модуле DLL, тип IGxApplication,
'в событии OnCreate делаю GxApp=hook
app=cls.GxApp

Всё равно app=Nothing


0 голосов
ответил 12 Фев, 08 от Vladimir11 (260 баллов)
У меня все ок. Код на шарпе:
1. У формы есть свойство:
        private IApplication _application;
2. Оно инициализируется в кунтрукторе:
        public Form1(IApplication _app)
        {
            InitializeComponent();
            _application = _app;
        }

3. В методе формы делаю вот так:
        private void button1_Click(object sender, EventArgs e)
        {
            IGxApplication gxApp = _application as IGxApplication;

            IGxObjectContainer arr = gxApp.SelectedObject as IGxObjectContainer;

Все работает.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...