2

For example: I create a basic MainMenu "My Menu" AddIn by VS2010, and add "isRootMenu=true", complie and install the addin, open ArcMap, I have to open the customize dialog -> commands, find the "[ Menus ]" below the Categories box, and find "My Menu" in the Commands box and drag it onto the MainMenu.

Many users worried about that the operation in customize dialog is too difficult.

Is there a way to Add AddIn To ArcMap UI Automatically After AddIn Installed?

2
  • 2
    Welcome go GIS SE! As a new user please take the tour. How did you add your AddIn the first time? Do you use the AddIn manager or double-click on the EsriAddIn file? It's been some time since I created an addin (5 years+), but I'll see if I can find an old one I can look at. – Midavalo Jul 15 '20 at 1:10
  • In the XML Config.esriaddinx set autoLoad="true" in the Extension id enclosure then build the solution to embed the changes. All the users need do is point the Addin Manager to add the path to where the tool resides. Are you using local copies or a single server location? A local copy can quickly get out of sync, a single server location you might find that you can't overwrite with updates if the tool is in use. Is that your question or do you mean how to retain the menu from one ArcMap session to all subsequent sessions? – Michael Stimson Jul 15 '20 at 1:31
3

Yes, I stopped counting the number of times I had to explain a user how to drag a button from the Customize dialog to a toolbar ;-)

What you could do is to add an Extension class to your addin (if you don't have one already), and add UI elements to ArcMap programmatically.

  • Right click the project, and select Add → New item
  • Browse to Visual C# Items → ArcGIS → Desktop Add-ins, and select Add-in Component
  • In the next dialog, check Extension, and then check Auto-load

Add code to the extension's OnStartup() method to add your menu to the user interface. Note that this method could possibly be called before ArcMap is visible, and therefore may fail. I'm not sure if there's an event you can use, but otherwise use a timer and check ArcMap.Application.Visible every second or so, until it's true.

1
  • It works fine! Thanks very much! – litouphone Jul 15 '20 at 8:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.