2014-11-20 45 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時,我從工具欄中選擇一個工具。我看着我的診斷窗口,我可以看到所選工具的工具提示。爲了我自己的利益,我需要調整一些東西,但這將是我正在尋找的答案。希望這可以對其他人有所幫助。