在命令栏上激活哪个命令项
本文关键字:命令 激活 | 更新日期: 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 时,我从工具条中选择一个工具。我查看诊断窗口,能够看到所选工具的工具提示。为了我自己的利益,我需要调整一些事情,但这将是我正在寻找的答案。希望这可以对其他人有所帮助。