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

C# 在命令栏上激活了哪个命令项,c#,visual-studio-2010,arcmap,arcobjects,commandbar,C#,Visual Studio 2010,Arcmap,Arcobjects,Commandbar,我正在使用VS2010和C在ArcMap中使用外接程序。我对ArcObjects ICommandBar和ICommandItem类有一个问题。我已经看过这些,并且已经能够生成代码,点击按钮,将选择或激活指定的命令项。所以我知道一些关于命令栏的事情。我的问题是如何确定命令栏上哪个命令项处于活动状态?我没有看到任何有用的方法来这样做。在此方面的任何帮助都将不胜感激 UID thisID = new UID(); thisID.Value = "esriArcMapUI.SelectTool";

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

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

你能发布你正在使用的当前代码,以便我们可以了解如何帮助你确定你是否正确地做了某件事。。?谢谢你也看到这个链接了吗?我还没有为这个问题编写任何具体的代码。我可以伪代码我想要的,如果这将画一个btter图片从别人的帮助。我已经看到了这个链接。它搜索由标识符指定的项。在用户单击之前,我不一定知道指定了哪个标识符。这就是我想做的;获取被点击的命令项你能想出一些你正在尝试的实际代码吗?在这种情况下,psedoocode真的帮不了我。。sorryOk,给我几分钟,我会看看我能想出什么,看看这是为了一些洞察力,而不是查找,你需要一个while循环,但不确定你的查找方法是否被错误地实现了