在命令栏上激活了哪个命令项

时间:2014-11-20 19:24:15

标签: c# visual-studio-2010 arcmap arcobjects commandbar

我正在使用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");
}

1 个答案:

答案 0 :(得分: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时,我从工具栏中选择一个工具。我查看了我的诊断窗口,并且能够看到所选工具的工具提示。我需要为自己的利益调整一些事情,但这将是我正在寻找的答案。希望这对任何其他人都有帮助。