我有一个使用ESRI AddIn按钮(ArcGIS 10.2和Windows 7)启动的窗体窗体。在我的表单中,我有一个按钮来从地图中选择一个点。我已经为项目添加了一个ESRI BaseTool类,该项目有一个OnMouseDown事件。在ArcGIS中从Windows窗体执行拾取点
问题是我无法使工具运行。请注意,该工具不在ArcGIS命令栏上(如按钮),但该工具仍由Find(uid)进程找到。
将工具添加到项目中时(使用ArcGIS Add BaseTool进程),它没有更新.esriaddinx文件。我必须手动执行此操作。
我的加载项文件是:
<AddIn language="CLR4.0" library="HVLR_Processing.dll" namespace="HVLR_Processing">
<ArcMap>
<Commands>
<Button id="RMS_HVLR_Processing_clsHVLR_Processing" class="clsHVLR_Processing" ...
<Tool id="HVLR_PickTool" class="clsMapPick" category="Add-In Controls" caption="" message="" tip="" image="" />
</Commands>
</ArcMap>
的clsMapClick代码包含onmousedown事件的事件。
要开始这个过程,我尝试了很多方法。我可以检索工具,但是当我执行它(或将其分配给CurrentTool)时,什么都不会发生。
UID pUID;
ICommandItem pCmdItem;
ICommand pCmd;
clsMapPick pPick;
ITool pTool;
try
{
this.WindowState = FormWindowState.Minimized;
m_pApp.CurrentTool = null;
pUID = new UIDClass();
pUID.Value = "HVLR_PickTool";
pCmdItem = m_pApp.Document.CommandBars.Find(pUID, false, false);
if (pCmdItem != null)
{
m_pApp.CurrentTool = pCmdItem; // Nothing happens
m_pApp.CurrentTool.Execute(); // Nothing happens
m_pApp.CurrentTool.Refresh();
}
}
catch (Exception ex)
谁能告诉我如何让这个工具执行?