0

我正在使用 VS2010 和 C# 在 ArcMap 中处理加载项。我对 ArcObjects ICommandBar 和 ICommandItem 类有疑问。我已经看过这些并且已经能够生成代码,在按钮单击时,将选择或激活指定的命令项。所以我对命令栏有所了解。我的问题是我将如何确定命令栏上哪个命令项处于活动状态?我没有看到任何有用的方法可以这样做。对此的任何帮助将不胜感激。

UID thisID = new UID(); 
thisID.Value = "esriArcMapUI.SelectTool"; 
IDocument ThisDoc = ArcMap.Application.Document; 
ICommandBars CommandBars = ThisDoc.CommandBars as ICommandBars; 
CommandBars.Find(thisID); 
ICommandItem myItem = CommandBars.Find(thisID) as ICommandItem; 

if (myItem.Execute() == true) 
{ 
 messagebox.show("My select element tool is selected");
}
4

1 回答 1

0

在@DJKRAZE 的帮助下,我终于找到了问题的答案。我让这件事变得比以前更难了,而且想得太难了。下面的代码可用于返回 ArcMap 中当前选定的工具(在我的情况下,我在诊断窗口中返回当前选定工具的工具提示)。

public static ICommandItem CurrentTool()
     {
         IApplication _myApp = ArcMap.Application;
         string getToolTip = _myApp.CurrentTool.Tooltip;
         System.Diagnostics.Debug.Write("Current Tool Tip is: " + getToolTip);
         return _myApp.CurrentTool;
     }  

我在单击按钮时调用此函数。因此,当我启动 ArcMap 时,我从工具栏中选择了一个工具。我查看我的诊断窗口,可以看到所选工具的工具提示。为了我自己的利益,我需要调整一些东西,但这将是我正在寻找的答案。希望这可以对其他人有所帮助。

于 2014-11-25T21:51:59.107 回答