Хорошо, я не собираюсь писать весь код здесь, но вот что я сделаю:
В текстовом событии вашего текстового поля;
- Проверьте, является ли введенное значение числовым
- Проверьте, соответствует ли он шаблону (сравните символы с тем, что вы хотите)
Для этого вам нужно сравнить каждое число по одному. Я бы предложил вам написать метод, который анализирует текст и сравнивает его с ожидаемыми значениями. Примерно так:
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; // number is not numeric
}
return false;
}
Могут быть небольшие ошибки, не записал это в VS. Вам нужно проверить длину текста и не вызывать этот метод, если он равен 0.