Ajouter un menu dans le menu principal

0000002261     -      04/11/2025

Ce module montre comment ajouter une entrée dans la barre de menus de Mercator.

menu_test

Cet exemple montre :

  • l'ajout de plusieurs entrées dans un menu personnalisé
  • l'ajout d'une séparation (BeginGroup = true)
  • la détermination d'un raccourci-clavier (ici Alt+Maj+C)
  • l'association d'une image à un élément de menu (prévoir une image 16x16 pixels)

Cette programmation est construite autour d'un customizer Main qui implémente l'interface MercatorUi.ICustomizers.IExec.

💡 Ce code est pris en compte au démarrage de Mercator. Il faut donc redémarrer Mercator pour voir ce nouveau menu. Il en est de même après chaque modification du code.

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;

namespace Main
{
    public class Customizer : MercatorUi.ICustomizers.IExec
    {
        public void Main(MercatorUi.ICustomizers.ExecAction action)
        {
            if (action == MercatorUi.ICustomizers.ExecAction.MenuCreated)
            {
                MercatorUi._BaseClasses.MenuElement meTest = new MercatorUi._BaseClasses.MenuElement("&Test");
                Globals.StarterMainForm.Mainmenu.Items.Add(meTest);

                System.Drawing.Image image = System.Drawing.Image.FromFile(@"M:\Mercator\ac0001-16.png"); // image 16x16 px
                MercatorUi._BaseClasses.MenuElement meTest1 = new MercatorUi._BaseClasses.MenuElement("Test 1", image, null, meTest1_Click);
                meTest1.Enabled = Convert.ToInt32(MercatorUi.Globals.CurrentUser["niveau"]) > 50;
                meTest1.Shortcuts.Add(DevComponents.DotNetBar.eShortcut.ShiftAltC);
                MercatorUi.Globals.Main.PlaceTouchesMajuro(DevComponents.DotNetBar.eShortcut.ShiftAltC, meTest1);
                meTest.SubItems.Add(meTest1);

                MercatorUi._BaseClasses.MenuElement meTest2 = new MercatorUi._BaseClasses.MenuElement("Test 2", "", null, meTest2_Click);
                meTest2.BeginGroup = true;
                meTest.SubItems.Add(meTest2);
            }
        }

        void meTest1_Click(object sender, EventArgs e)
        {
            MercatorUi.Dialogs.Stop("Test 1 !");
        }

        void meTest2_Click(object sender, EventArgs e)
        {
            MercatorUi.Dialogs.Stop("Test 2 !");
        }
    }
}


Cookies fonctionnels : Cookies nécessaires à l'utilisation du site et cookies de préférence. Ils ne contiennent aucune donnée à caractère personnel. (En savoir plus)

Cookies statistiques : Captation de statistiques liées aux comportements des internautes. (En savoir plus)

Cookies marketing : Pour effectuer le suivi des visiteurs au travers des sites web, à des fins publicitaires. (En savoir plus)