La programmation effectuée ici montre comment désactiver les 2 sous-boutons de suppression de lignes dans un écran de la gestion commerciale. Elle est réalisée sous la forme d'un customizer Billing qui implémente les interfaces MercatorUi.ICustomizers.IBillingEngineCreated et MercatorUi.ICustomizers.IBillingEngineClosed.

Le code commenté s'établit comme suit :
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;
using MercatorUi;
using System.Linq;
namespace Billing
{
public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
{
public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
{
BillingEngine.BillingFormLoaded += BillingEngine_BillingFormLoaded;
}
public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine BillingEngine)
{
BillingEngine.BillingFormLoaded -= BillingEngine_BillingFormLoaded;
}
void BillingEngine_BillingFormLoaded(object sender, EventArgs e)
{
MercatorUi.Engine.Gescom.BillingEngine billingEngine = (MercatorUi.Engine.Gescom.BillingEngine)sender;
var bleuPro = billingEngine.BillingForm.Controls.OfType<MercatorUi.BoutonsPro.BleuPro>().FirstOrDefault(); // on a identifié le bandeau dans le bas de l'écran
if (bleuPro != null)
{
MercatorUi.BoutonsPro.ButtonXPro buttonLignes = bleuPro.Controls.OfType<MercatorUi.BoutonsPro.ButtonXPro>().FirstOrDefault(b => b.Name == "lignes");
if (buttonLignes != null)
{
buttonLignes.SubItems[2].Enabled = false; // disabler "Supprimer ligne"
buttonLignes.SubItems[3].Enabled = false; // disabler "Supprimer toutes les lignes"
}
}
}
}
}