Een menu toevoegen in het hoofdmenu

0000002261     -      27-08-2017

Deze module toont hoe je een menu kan toevoegen in het hoofdmenu van Mercator Majuro. (Deze programmatie is niet van toepassing op Mercator Aruba)

menu_test

Dit voorbeeld toont:

  • Toevoegen van meerdere entries in een gepersonaliseerd menu
  • Toevoegen van een scheiding (BeginGroup=true)
  • Het bepalen van sneltoetsen (hier Alt + Shift + C)
  • Afbeelding toevoegen aan een menu-element (voorzie een foto van 16*16 pixels)

Deze programmatie is opgebouwd rond de Main-customizer die de interface MercatorUi.ICustomizers.IExec implementeert.

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

    }
}