ArcMap에 툴바를 추가하는 ArcMap 10.0의 추가 기능을 개발 중입니다. OpenModelessDialogCommand
해당 도구 모음의 하나의 명령 ( ) 단추는 모덜리스 WinForms 대화 상자를 열고, MyTool
예를 들어 맵에서 기능을 선택하기 위해 도구 ( )를 활성화 할 수 있습니다.
My Config.esriaddinx
에는 다음 명령 및 도구 모음 선언이 포함되어 있습니다.
<Commands>
<!-- this is the command that opens the modeless WinForms form, from where
MyTool is available: -->
<Button id="OpenModelessFormCommand" ... />
<!-- MyTool is not directly referenced in any toolbar defined in this file: -->
<Tool id="MyTool" class="MyTool" ... />
</Commands>
<Toolbars>
<Toolbar ...>
<Items>
<Button refID="OpenModelessFormCommand" />
</Items>
</Toolbar>
</Toolbars>
내가 문제가 MyTool
있는 것은 양식에서 활성화 하는 것입니다. 인터넷에서 찾은 것은 다음과 같은 코드 샘플입니다.
// get a reference to an instance of MyTool:
ICommandItem myTool = ArcMap.Application.Document.CommandBars.Find("MyTool");
// activate MyTool:
ArcMap.Application.CurrentTool = myTool;
그러나 이것은 분명히 MyTool
내 추가 기능의 명령 모음 (예 : 도구 모음)에 실제로 나타나야합니다 . 그러나 그렇지 않습니다. 그래서 다음에 이것을 시도했습니다.
ITool myTool = new MyTool();
ArcMap.Application.CurrentTool = myTool; // Type mismatch! An ICommandItem is expected.
나는 심지어 AxToolbarControl
폼에 보이지 않는 것을 추가하고 MyTool
거기에 버튼을 추가하는 것을 보았습니다 . 하지만 툴바를 통해 SetBuddyControl
열린 문서의지도 에 연결하는 방법에 문제 가 있습니다. 도구가 별도의 기능 AxMapControl
으로 작동하고 싶지 않고 ArcMap에 표시된 기본 맵과 직접 작동하기를 원합니다.
질문 :
툴바 (또는 다른 명령 모음)에 추가되지 않은 사용자 정의 도구를 활성화하려면 어떻게해야합니까?
bug
가없고 아직 존재하지 않는 것 같습니다. 태그를 직접 수정하십시오.