Magic MenuControl - VS.NET Style






4.83/5 (40 votes)
Sep 30, 2002
2 min read

344185

1702
Menus that mimic VS.NET/OfficeXP
Why another MenuControl?
The .NET Framework contains a wide range of user interface controls, but they offer only a basic look and feel. Today's user expects a richer experience that you just cannot build with the out-of-the-box controls. The Magic Library (of which this MenuControl is a major part) aims to solve this by providing a set of user interface elements that add the sophistication expected from modern Windows applications.
Downloads
The first download MenuControl Sample
contains a example application
that uses shows the MenuControl from the Magic Library. This allows you to
experiment and test out the feature. The actual source code is inside the
separate second download. At nearly 1MB in size, I thought people would prefer
to download the sample before deciding if they want to install the entire
source code project!
Description
The usual way to create a menu for your application is via theMenu
property
of your applications main Form
. Unfortunately this gives a very basic
look and feel and does not support the new Visual Studio .NET appearance.
This is where the MenuControl
class comes into its own as it closely
mimics the Visual Studio .NET look and feel. Not only that, but you can create
as many instances as you like and place them anywhere on your Form
. You
can even use the Dock
property to place the control against the left/right and bottom edges as well
as the traditional top position. When placed on the left or right edges it will
draw the menu items vertically.
When using the control within an MDI application it is important that exactly
one instance of the MenuControl
uses the MdiContainer
property.
This property should be given a reference to the MDI parent Form
so that
it can correctly display the pendant for MDI child Forms
.
MenuCommand Instances
The control exposes a property calledMenuCommands
that contains the
collection of MenuCommand
instances for display. You cannot use the
builtin menu designer to generate the instances and so will need to use code to
create the structure you need. Look at the sample code to see how this is done.
PopupMenu
Also demonstrated in the sample is use of thePopupMenu
class that can
be seen by right clicking the RichTextBox
present inside each MDI child
instance. This shows how to create a context menu using the VS.NET/OfficeXP
look and feel. It uses the same MenuCommand
instances as the MenuControl
.
More Details
Download and install the Magic Libary where a couple of more detailed artiles describe how all the various features of theMenuControl
and PopupMenu
work.
Revision History
30 Sept 2002 - Initial Revision