Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Ajouter un menu dans le menu principal

0000002261     -      27/08/2017

Ce module montre comment ajouter une entrée dans la barre de menus de Mercator Majuro. (Cette programmation ne s'applique pas à Mercator Aruba).

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.

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 !");
        }

    }
}