Menus for Visual Studio Tools for Microsoft Dynamics GP 10.0

David Meego - Click for blog homepageThis is a reposting of an article I originally wrote on my Developing for Dynamics GP blog.

IMPORTANT NOTICE: Menus for Visual Studio Tools is now Visual Studio Integration Toolkit from Winthrop Development Consultants (

Great News for Visual Studio developers working with Microsoft Dynamics GP 10.0.

The Issue

As I worked more with the Developer Toolkit and in particular Visual Studio Tools for Microsoft Dynamics GP, I found that the main support issue being seen was that it is not possible to add menu entries into the Microsoft Dynamics GP application navigation system without creating a Dexterity dictionary. This is mentioned in the following Knowledge Base (KB) article:

While creating a Dexterity dictionary to add the appropriate menus is not that hard for a Dexterity developer, it would mean learning a new set of skills for a Visual Studio developer that doesn’t have previous dexterity experience.  It seems rather inefficient to force Visual Studio developers to work in Dexterity, when they had achieved everything else with Visual Studio, just to add some entries in the menus.

If the customization is sufficiently complex that it requires Dexterity code (maybe for procedure/function triggers, table triggers, or for alternate windows) as well as Visual Studio code, then there is no problem adding the navigation code into the existing dictionary.  However, this is not the case for many smaller Visual Studio customizations.

The Solution

The long term plan is to provide built-in support for adding to the navigation menus from Visual Studio into the next version of Microsoft Dynamics GP.

In the meantime, I have created a generic Dexterity dictionary which has an API (Application Programming Interface) which easily allows Visual Studio Tools developers to create their own menus, sub menus and separators directly from C# or VB code.

After discussions with the development and support teams, it was agreed that this code could be made available to developers to use with their Visual Studio based add-ins for Microsoft Dynamics GP release 10.0.  Due to several fixes and enhancements in Visual Studio Tools for GP 10.0, this menu solution will not be available for GP 9.0. The plan for GP 11.0 onwards is that this functionality will be built into Visual Studio Tools.

[Edit] The menu functionality did not make it into GP 2010 (v11.0) and so an updated version of Menus for Visual Studio Tools will be released for v10.0 and v11.0 soon. Details will be posted on the blog.

We are still working on getting everything ready for release, but it will be made available soon.

More Information

For more information, please see the Visual Studio Integration Toolkit portal, which replaced the Menus for Visual Studio Tools.

Please add your feedback as comments, will this tool be useful to you?


This article was originally posted on the Developing for Dynamics GP Blog and has been reposted on

28 thoughts on “Menus for Visual Studio Tools for Microsoft Dynamics GP 10.0

  1. I had this problem a couple of months back.
    We had an application that integrated with GP, and had multiple menu items in GP.
    When planning for an upgrade we decided it would be more efficient to migrate the code to C#. Everything worked out fine – except the menu’s. We had to write dexterity code and create a chunk file, and all it did was add a menu option that launched the application. Definitely seemed in-efficient, but that was the only way to go. To make things simpler – we decided to move all menu items but the app launcher in .Net application.


  2. Great to heard that this available tools. By the way, GP menu security able to control the menu access for those menu created in VS tools?


  3. Hi Richard.
    Great question.
    When you create a menu from VS Tools you have the option to assign a security form to it. The new menu will now have the same security access as that form.
    For example: Assigning the RM_Customer_Maintenance form to a menu will mean that it can only be used if the current user has access to the Customer Maintenance form itself.
    Security can be asign at the time the menu is registered, or afterwards if desired.


  4. 100% needed here.  
    This will be great to have.  Also, you would probably get more of a response if anon comments weren’t disabled.


  5. Dear David,
    This new innovation is really marvelous. I would like to take this opportunity to express my happiness and congratulation to you. The one of main constraints have been removed because of this new feature.
    I hope we will get the LineFill event as well, soon in DTK 🙂
    Kind Regards,


  6. Hi Sajeesh
    The LineFill event was removed from v9.0 as it would not have worked.
    At the time when Dexterity executes the LineFill event, the contents of the scrolling window (grid) are not yet populated.  In Dexterity we have to access the data from the table buffer.  As v9.0 of Visual Studio Tools did not have table buffer support, the LineFill event would not have been of any use.  Because of this it was removed from the v9.0 release.
    When table buffer support was added into v10.0 of Visual Studio Tools, the LineFill event was overlooked and not added back.  Development are aware of this and hopefully will we see it added back soon.


  7. Awsome! Being one who does not have time to dive into Dexterity. In just a couple of hours I was able to take all of the scattered menu handlers for our custom .net apps and turn them into a professional and easy to find menu items. Thank You!


  8. Hi Triven
    The Menus for Visual Studio Tools has only been released for v10.0.  For v9.0 you will still need to create your own Dexterity dictionary. For v11.0, the plan is to have a different method built into Visual Studio Tools.


  9. David:
    I am running into a problem when accessing VS Tools windows using the new Menus for VS Tools. The problem is this: if the VS Tools window is open when I change companies the window does not automatically close like all the other windows in GP do. Also if I close GP with the VS Tools window open it appears that the VS Tools window hangs and is the very last thing to close (after GP is already closed). Are there any solutions to this issue? When using VS Tools windows the old way (attached to another GP window) it is easy to close it based on if the GP window has closed.


  10. Kevin,
    You need to take care of your own windows – just the same as if they were "attached" to a form.
    In this case you need to trigger on a window that is open and closes on the switch company.  Use the Toolbar.MainMenu1 window for this.


  11. The post says "The plan for GP 11.0 onwards is that this functionality will be built into Visual Studio Tools."
    I’ve read the VS Tools SDK for GP 11 beta and tested it out, but I have not seen this functionality built into GP 11.  Has it been included?  If so, how is it accessed?


  12. Ed,
    The table buffer & procedure/function events took a lot more to get working than was anticipated and so the ‘hooks’ for menus in vstools wasn’t even started and thus not available.
    The new plan is that David M will update the Menus application to support v11.0.  This should be fairly trivial to do – just update the references to the 11.0 assemblies and change the version check to 11.0 and done.
    This should be completed before GP 2010 ships (easily).
    dev suppport


  13. Hi Ed
    There is a bit more too the upgrade to v11.0 as we are extending the functionality for v10.0 first and then doing the upgrade to v11.0.  While the upgrade to v11.0 is fairly quick from a Dexterity and Visual Studio Tools perspective. I am still working on the updated functionality.
    I will update the blog once I have news.


  14. Dave,
    I’m trying to add an item to the Transaction – Manufacturing – Forcasting menu. Is this possible? If so, can you supply the correct references or tell me how I might discover them?
    Kevin Vogler


  15. Hi Kevin
    Use the KB Article below to create a combined dictionary for manufacturing, then look for the Command forms, should have "Command" in the name, usually starting with it.  You can then open the form definition and look at the commands tab.  This will allow you to identify the name of the form and command.
    How to combine the Dynamics.dic core dictionary and an extracted dictionary by using Dexterity Utilities in Microsoft Dynamics GP (KB 930350);en-us;930350
    Good luck.


  16. Hi Vinay
    Menus for Visual Studio Tools is designed to allow a Visual Studio Tools developer to integrated with the commands and menus of the Microsoft Dynamics GP application level menus.
    The Additional menu is used when additional menus are created using Dexterity Form triggers or the equivalent AddMenuHandler() method from Visual Studio.
    I suggest you look at the Chapter 15: Forms of the Visual Studio Tools for Microsoft Dynamics GP Programmers Guide (VSTDGPProgrammersGuide.pdf) for more information on the AddMenuHandler() method.


Please post feedback or comments

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.