Vink standaard een vakje aan in het raster met gekoppelde items

0000003188     -      26-10-2023

De hier getoonde code demonstreert hoe je standaard een vakje aanvinkt in het raster met gekoppelde items zodra een item is geselecteerd. In dit raster zijn de namen van de "checkbox"-kolommen "PR", "VEN", "ACH", "PROD", "VEN2", "ACH2", "PROD2", "VEN3", "ACH3", "PROD3". Het voorbeeld wordt gegeven voor kolom A, d.w.z. "ACH".

Deze programmering is gebaseerd op een SigStock customizer die de volgende interfaces implementeert:

Het gebruikt de gebeurtenis AfterSelectNewSigRecord van ArtLiens om aangepaste code uit te voeren nadat een item uit het raster is geselecteerd.

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Linq;

namespace SigStock
{
    public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
    {

        public void FormLoadCustomize(System.Windows.Forms.Form form)
        {
            MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
            MercatorUi.Forms.Sig.SigGrids.ArtLiens artliens = sigForm.MovableControls.Values.OfType<MercatorUi.Forms.Sig.SigGrids.ArtLiens>().FirstOrDefault();
            if (artliens != null)
                artliens.AfterSelectNewSigRecord += GridArtliens_AfterSelectNewSigRecord;
        }

        public void FormClosedCustomize(System.Windows.Forms.Form form)
        {
            MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
            MercatorUi.Forms.Sig.SigGrids.ArtLiens artliens = sigForm.MovableControls.Values.OfType<MercatorUi.Forms.Sig.SigGrids.ArtLiens>().FirstOrDefault();
            if (artliens != null)
                artliens.AfterSelectNewSigRecord -= GridArtliens_AfterSelectNewSigRecord;
        }

        private void GridArtliens_AfterSelectNewSigRecord(object sender, MercatorUi.MovableControls.MovableGrid.AfterSelectNewSigRecordEventArgs e)
        {
            MercatorUi.Forms.Sig.SigGrids.ArtLiens artliens = (MercatorUi.Forms.Sig.SigGrids.ArtLiens)sender;
            artliens.Grid.Rows[e.RowIndex].Cells["ACH"].Value = true;
        }
    }
}