Cette programmation permet de mettre en italique les lignes correspondant à des actions faites (au lieu de les voir barrées) dans les grilles des actions des signalétiques.
La programmation illustrée ici est réalisée sur base d'un customizer SigCli qui implémente les interfaces suivantes :
Le customizer s'écrit comme suit :
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;
using System.Drawing;
using System.Linq;
namespace SigCli
{
public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
{
public void FormLoadCustomize(Form form)
{
MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
MercatorUi.Forms.Sig.SigGrids.Actions actions = sigForm.MovableControls.Values.OfType<MercatorUi.Forms.Sig.SigGrids.Actions>().FirstOrDefault();
if (actions != null)
actions.Grid.CellFormatted += Actions_CellFormatted;
}
public void FormClosedCustomize(Form form)
{
MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)form;
MercatorUi.Forms.Sig.SigGrids.Actions actions = sigForm.MovableControls.Values.OfType<MercatorUi.Forms.Sig.SigGrids.Actions>().FirstOrDefault();
if (actions != null)
actions.Grid.CellFormatted -= Actions_CellFormatted;
}
private void Actions_CellFormatted(object sender, DataGridViewCellFormattingEventArgs e)
{
DataGridView grid = (DataGridView)sender;
if (Convert.ToDateTime(grid.Rows[e.RowIndex].Cells["date_done"].Value) > new DateTime(1900, 1, 1))
e.CellStyle.Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Italic, GraphicsUnit.Point, 0);
}
}
}
Notez qu'on exploite ici l'évènement CellFormatted de la MercatorUi.GridPro.DataGridViewXPro. Cet évènement permet d'agir sur le format d'une cellule, après que Mercator ait exécuté l'évènement CellFormatting standard.