From Xojo Documentation

Class (inherits from MenuItem)

Used to handle the application’s and windows’ menu bar.

Action EnableMenu

AlternateMenuModifier fa-lock-32.png Index fa-lock-32.png Name
AutoEnable Key fa-lock-32.png PCAltKey fa-lock-32.png
Checked KeyboardShortCut Tag
Enabled MacControlKey fa-lock-32.png Text
Handle fa-lock-32.png MacOptionKey fa-lock-32.png Visible
Icon MenuModifier fa-lock-32.png

Append Close Item
Child Count Popup
Child Enable Remove
Clone Insert Remove


When you create a new desktop project, a default MenuBar (called MainMenuBar) is added to your project.

You can refer to a MenuBar globally by its name because an "implicit instance" is automatically created for you to use. If you use the global name, then you will get the same MenuBar instance everywhere you use it. If you modify the MenuBar in code, the modification will appear everywhere the MenuBar is used.

If you would rather have separate instances of the MenuBar, you should assign it in code manually in the Window.Open event:

Self.MenuBar = New MainMenuBar

On macOS, if a window does not have a MenuBar specified, then the window uses the MenuBar specified on Application.MenuBar.

On Windows and Linux, if a window does not have a MenuBar specified, then the window will display without a MenuBar even if one is specified in Application.MenuBar.


See examples for the MenuItem class.

See Also

MenuItem; Application.MenuBar and Window.MenuBar properties.