D'accord, je ne vais pas écrire tout le code ici mais voici ce que je ferais:
Dans l'événement textchanged de votre zone de texte;
- Vérifiez si la valeur saisie est numérique
- Vérifiez si elle correspond au modèle (comparez les caractères avec ce que vous voulez)
Pour celui-ci, vous devez comparer chaque chiffre un par un. Je vous suggère d'écrire une méthode qui analyse le texte et les compare avec vos valeurs attendues. Quelque chose comme ceci:
private bool IsNumberValid(string text)
{
String min = "1980",max=2011;
try
{
int minNumber = Convert.ToInt32(min.Substring(0,text.length));
int maxNumber = Convert.ToInt32(max.Substring(0,text.length));
int myNumber = Convert.ToInt32(text);
if(myNumber <= max && myNumber >= min)
return true;
}
catch(Exception ex)
{
return false; // le nombre n'est pas numérique
}
return false;
}
Il peut y avoir de petites erreurs, je ne l'ai pas écrit dans VS. Vous devriez vérifier la longueur du texte et ne pas appeler cette méthode si elle est égale à 0.