With VB .NET, Microsoft has adopted a whole new philosophy. Rather than specific tools that do specific things, they give you objects that do the basic things and then they tell you, "We don't know everything that you might want to do with these objects. If you think of something new, just extend the object with your own programming." So ... there is no Menu Editor in VB .NET. There are menu objects instead. You don't get the closely controled and reliable functions of VB 6 but in return you get freedom. Freedom to program whatever your creative programmer's mind can think of.
And (no surprise here), it's totally different from VB 6. As an example of the new "polymorphic" object oriented behavior of menus in VB .NET, both Context Menus and Main Menus both "inherit" from the same higher level Menu object.
As an example of the creation of VB .NET menus, lets' create the same menu that we built in VB 6. In a Windows Application project, drag the MainMenu component from the Windows Forms section of the Toolbox to a form. Notice that this becomes an "invisible component" like the Timer or Tooltip components and shows up in the Component Tray below the form. When the MainMenu component is selected, the caption can be entered either directly in the component tray text boxes, or in the properties dialog window. The sequence of menu items can be changed by simple drag and drop operations. The whole confusing "cursor arrow," "Next" button, and "OK" button necessary to enter menus in VB 6 is simply gone. The VB .Net idea is much more WYSIWYG like a good editor should be! Here's My Menu One being created in VB .NET.
Rather than being created with a function call, a Context Menu in VB .NET is a separate object in the Toolbox. They don't share names and properties with main menu items. If you want identically the same menu as a Context Menu and a Main Menu, you have to have one of each. They're both created and edited the same way in an editing area at the top of a form.
A Context Menu is associated with a control by changing the ContextMenu property of a control. The properties for the Context Menu are both in the properties for the control and the ContextMenu component.
If this was all there was to VB .NET menus, it would be reasonable to conclude that it was just an incremental improvement over VB 6, but objects open up a whole new world. The methods and properties of VB .NET menus are in several of the objects. The definitions (shown at left) of ContextMenu, MainMenu, and MenuItem in VB .NET show that all are derived from the Menu Abstract Class. A lot of the great performance that you can get from menus is based on using (and extending) the properties and methods in these classes. The best documentation for Menu objects that I have know of for VB .NET is in Matthew MacDonald's great book, User Interfaces in VB .NET. The example below showing how to include icon graphics in your menus is adapted from his book. This example on the next page is considerably simpler, however, because the book includes code that might be necessary in a production system but not in an example.
Next page >
The About Visual Basic Menu > Page
1,
2,
3,
4,
5