Add-ins.C#.Взаимоувязывание контролов.

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
dravig
Участник
Сообщения: 54
Зарегистрирован: 18 мар 2010, 16:58
Репутация: 0

Add-ins.C#.Взаимоувязывание контролов.

Сообщение dravig » 11 окт 2013, 21:25

Добрый вечер.
Я начал осваивать программирование на C# под аркгис, и столкнулся с некоторыми трудностями.

Например у меня есть add-in для ArcMap. В нем есть инструмент, кнопка и комбобокс. Управлять, инструментом у меня получается только из класса инструмента, где я могу написать

Код: Выделить всё

this.enabled
. Как мне обратиться к управлению инструментом из класса кнопки?

Отдельная проблема - это увязывание действий моих контролов с сессией редактирования.
В классе самого инструмента я написал такую штуку:

Код: Выделить всё

public  IEditor m_Editor = (ESRI.ArcGIS.Editor.IEditor)ArcMap.Application.FindExtensionByName("ESRI Object Editor");
Это позволило мне например активировать и деактивировать его одновременно с командами StartEditing и Stop Editing

Код: Выделить всё

if (m_Editor.EditState == ESRI.ArcGIS.Editor.esriEditState.esriStateEditing)
            {          
                this.Enabled = true; 
            }
            else
            {
                this.Enabled = false;
            }

Дальше я с помощью инструмента провожу действия над таблицей атрибутов. Сначала все хорошо: тыкаешь им на объекты и атрибуты меняются как надо. Но когда я хочу завершить редактирование, во-первых не выскакивает стандартное окно "Do you want to save edits", во-вторых если сохранить изменения принудительно, и затем - завершить редактирование - то ArcMap тупо вылетает, ничего не объясняя.

Буду очень признателен, если направите меня в какую сторону копать. Могу представить полный код с конкретными действиями над таблицей атрибутов, если дело все-таки в нем.

dravig
Участник
Сообщения: 54
Зарегистрирован: 18 мар 2010, 16:58
Репутация: 0

Re: Add-ins.C#.Взаимоувязывание контролов.

Сообщение dravig » 13 окт 2013, 17:36

Удивительно. Попробовал переписать инструмент как existing arc objects. И ArcMap перестал вылетать. Не понимаю логику всего этого.

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: Semrush [Bot] и 3 гостя