Dans la grille du LinesEditor, permettre la saisie de plusieurs lignes dans une cellule

0000002262     -      04/11/2025

Cette programmation montre comment permettre la saisie de plusieurs lignes dans une cellule du LinesEditor de la BillingForm. Le même principe peut être étendu à la BookingForm, l'InventoryForm et la TransferForm, ainsi qu'à toute DataGridView.

multilines_cell

Pour augmenter la hauteur par défaut de chaque ligne de la grille, il faut fixer la propriété RowHeight du LinesEditor à une valeur relativement élevée. Par exemple : 99.
Il faut aussi mettre l'alignement de la colonne en question à TopLeft.
Ces deux points peuvent être fixés facilement via le paramétrage des écrans.

Le reste est assuré par un customizer Billing :

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;

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;
            if (billingEngine.BillingForm.LinesEditor != null)
                billingEngine.BillingForm.LinesEditor.Grid.Columns["myField"].DefaultCellStyle.WrapMode = DataGridViewTriState.True; // autoriser multi-lines
        }
    }
}

Remarques :

  • Notez que l'ajout d'une ligne dans la cellule ne se fait pas par la touche "Enter" mais par la combinaison de touches "Majuscule + Enter".
  • Dans le code, "myField" doit être remplacé par le nom du champ pour lequel on souhaite activer cette fonctionnalité.
  • En SQL, le meilleur type permettant la saisie d'un mémo est Varchar(MAX). (Le type Text n'est plus supporté)

 



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)