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

本文关键字:命令 激活 | 更新日期: 2023-09-27 18:31:12

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

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");
}

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

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