ツールバーをArcMapに追加するArcMap 10.0のアドインに取り組んでいます。OpenModelessDialogCommand
そのツールバーの1つのコマンド()ボタンは、モードレスWinFormsダイアログを開きます。このダイアログから、ツール(MyTool
)をアクティブにして、たとえばマップ上のフィーチャーを選択します。
私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
ませんでした。まだ存在していないようです。自分でタグを自由に編集してください。