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?

PolyGeo
65.5k29 gold badges115 silver badges350 bronze badges
asked Jul 15, 2020 at 1:02
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. Commented Jul 15, 2020 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? Commented Jul 15, 2020 at 1:31

1 Answer 1

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.

answered Jul 15, 2020 at 7:36
1
  • It works fine! Thanks very much! Commented Jul 15, 2020 at 8:23

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.