// Valider le contrôle en quittant ce dernier
        private void Leave(object sender, EventArgs e)
        {
            ControlToValidate ctv = FindControlToValidate(sender);

            ctv.JustFocused = false;
            UpdateError(sender);
        }
 /// <summary>
 /// Vérification de la validité d'un contrôle. Si ce dernier est en faute,
 /// ajouter un indicateur d'erreur.
 /// </summary>
 /// <param name="control">Référence sur le contrôle à valider</param>
 public void UpdateError(object control)
 {
     if (_ErrorProvider != null)
     {
         ControlToValidate ctv = FindControlToValidate(control);
         if (ctv != null)
         {
             string message = "";
             if (!ctv.Validate(ref message))
             {
                 _ErrorProvider.SetError(ctv.Control, message);
             }
             else
             {
                 _ErrorProvider.SetError(ctv.Control, null);
             }
         }
     }
 }
        // Si le contrôle vient d'avoir le focus, placer le curseur à la fin
        private void Click(object sender, EventArgs e)
        {
            ControlToValidate ctv = FindControlToValidate(sender);

            if (ctv.JustFocused)
            {
                ctv.JustFocused = false;
                if (sender.GetType() == typeof(MaskedTextBox))
                {
                    PlaceCursorAtEnd((MaskedTextBox)sender);
                }
                else
                {
                    if (sender.GetType() == typeof(TextBox))
                    {
                        PlaceCursorAtEnd((TextBox)sender);
                    }
                }
            }
        }
        // Marquer le contrôle comme venant d'avoir le focus
        private void Enter(object sender, EventArgs e)
        {
            ControlToValidate ctv = FindControlToValidate(sender);

            ctv.JustFocused = true;
        }