Een menu-item met code deactiveren of verwijderen uit het menu

0000002383     -      16-09-2025

Deze code laat zien hoe u kan reageren op de veranderingen in het Mercator Majuro menu. Hij is gebouwd op basis van een Main customizer die een MercatorUi.ICustomizers.ExecAction implementeert. Het wordt geactiveerd als de actie MenuCreated is gebruikt.

In ons voorbeeld zullen we de benaming van de tweede sequentie deactiveren en veranderen die voorkomt in “Verkoop / Leveringen".

Het principe van de code is om

  • Eerst zich vast te maken aan de bovenste elementen om het “Verkoop" element te vinden
  • Vervolgens in dit element het sub-element “Leveringen” te vinden
  • Te werken binnen de sub-elementen van “Leveringen” aan het gewenste element.

De code is als volgt:

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)
            {
                string verkopen = MercatorUi._Divers.Iif_langue(MercatorUi.Globals.Langue, "Sales", "Verkopen", "Ventes");
                string leveringen = MercatorController.xFunctions.xLibTypeDoc("V", 2, MercatorUi.Globals.Langue);
                    
                foreach (MercatorUi._BaseClasses.MenuElement me1 in Globals.StarterMainForm.Mainmenu.Items)
                {
                    if (me1.Text == verkopen)
                    {
                        foreach(MercatorUi._BaseClasses.MenuElement me2 in me1.SubItems)
                        {
                            if (me2.Text == leveringen)
                            {
                                if (me2.SubItems.Count >= 2)
                                {
                                    me2.SubItems[1].Enabled = false;
                                    me2.SubItems[1].Text += " geen toegang via dit menu";
                                }
                                break;
                            }
                        }
                        break;
                    }
                }
            }
        }
    }
}

 

Om het menu-item te verwijderen volstaat het om de 2 lijnen die werken op me2.SubItems[1] te verwisselen met

Zoom
me2.SubItems.RemoveAt(1);

 



Functionele cookies: Cookies die nodig zijn voor het gebruik van de website en voorkeurscookies. Ze bevatten geen persoonsgegevens. (Meer informatie)

Analytische cookies: Verzamelen van statistieken met betrekking tot het gedrag van internetgebruikers. (Meer informatie)

Marketingcookies: Om bezoekers op verschillende websites te volgen voor advertentiedoeleinden. (Meer informatie)