2014-11-20 91 views
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"); 
} 
+1

你可以发布你正在使用的当前代码,以便我们可以看到有关帮助您确定您是否正在或不正确地做某件事。也感谢你看过这个链接http://help.arcgis.com/zh/sdk/10.0/arcobjects_net/componenthelp/index.html#//002300000068000000 – MethodMan 2014-11-20 19:26:49

+0

我还没有写出这个特定问题的具体代码。如果这可能会让别人得到帮助,我可以伪造我想要的东西。虽然我看过这个链接。它搜索由标识符指定的项目。在用户点击它之前,我不一定知道指定了哪个标识符。这基本上是我想要做的;获取被点击的命令项目 – user1898629 2014-11-20 19:45:19

+0

你能想出一些你正在尝试pseduocode的实际代码真的不帮助我说在这种情况下..对不起 – MethodMan 2014-11-20 19:47:55

回答

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