Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Permettre la validation personnalisée d'un TextBox

0000002107     -      26/04/2019

Cet exemple montre comment ajouter du code permettant de valider un TextBox.

Pour réaliser ceci, il faut atteindre les propriétés du TextBox. Cela peut se faire en implémentant une interface MercatorUi.ICustomizers.IFormLoadCustomizer.

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

namespace SigCli
{
    public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer
    {
        public void FormLoadCustomize(System.Windows.Forms.Form WindowsForm)
        {
            MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)WindowsForm;
            MercatorUi.MovableControls.MovableTextBox MonTextBox = (MercatorUi.MovableControls.MovableTextBox)sigForm.MovableControls["0B4B01061B"];
            MonTextBox.Validator = new MercatorUi.Validators.ControlValidator(MonTextBox, "Veuillez compléter cette zone !", new DevComponents.DotNetBar.Validator.ValidateValueEventHandler(ValidateMonTextBox), 1);
        }

        private void ValidateMonTextBox(object sender, DevComponents.DotNetBar.Validator.ValidateValueEventArgs e)
        {
            e.IsValid = (e.ControlToValidate.Text.Trim() != "");
        }
    }
}

Après avoir localisé le TextBox, nous lui ajoutons la classe ControlValidator en lui passant comme paramètres :

  1. le contrôle à valider
  2. le message à afficher en cas de non respect de la validation
  3. l’évènement à déclencher pour la validation
  4. le type de validation (toujours 1 dans notre cas)

L’évènement de validation est ici "ValidateMonTextBox".
L’exemple donné demande que la zone soit complétée, donc on vérifie que le contrôle à valider ne soit pas vide.
Il est facile d’adapter ce test pour valider la zone comme bon vous semble, du moment qu'il renvoie une valeur logique à la propriété IsValid.

Mot-clés : ControlValidator