概要
ArcGIS Pro SDK が提供しているイベントを実装することで、ArcGIS Pro の様々な操作に対して独自の処理を入れることが可能です。この記事ではプロジェクトを開いたときに発生する ProjectOpenedEvent をご紹介します。
サンプル コード
イベントの登録はアドインの初期化メソッドなどの中に実装します。//// Module1.cs
protected override bool Initialize()
{
// イベントの登録
ProjectOpenedEvent.Subscribe(OnProjectOpened);
return base.Initialize();
}
private void OnProjectOpened(ProjectEventArgs args)
{
// プロジェクト名を表示
MessageBox.Show(args.Project.Name);
// ~ 任意の処理を実装 ~
}
protected override void Uninitialize()
{
// イベントの登録を解除
ProjectOpenedEvent.Unsubscribe(OnProjectOpened);
base.Uninitialize();
}
上記のコードではプロジェクトを開いた際にメッセージ(プロジェクト名)が表示されます。
※プロジェクトを開いたタイミングのため、マップが開かれるより前にイベントが発生します。
このイベントを使うことで、開くプロジェクトによって初期設定を変える、特定のプロジェクトが開かれたときに事前処理を入れる、といった実装が可能です。
補足
上記は Visual Studio テンプレート「ArcGIS Pro モジュール アドイン」での実装を想定しています。ボタンなどのクリックをトリガーとせずイベントの登録を行う場合は、Config.daml ファイルの insertModule にて autoLoad を true に設定して実装することで、ArcGIS Pro 起動時に自動的にアドインが読み込まれイベントの登録が行われます。
<insertModule id="Sample_Module" className="Module1" autoLoad="true" caption="Module1">
また、時間がかかる処理を入れる場合は非同期処理の実装が可能な ProjectOpenedAsyncEvent をご利用ください。
このナレッジはお役に立ちましたか?
フィードバックをいただきありがとうございます!