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