Как ограничить или фильтровать вход в Mask TextBox в приложении Windows

121
8

Обновление: изменил мой вопрос для лучшего понимания. Я надеюсь

Я установил свойства Mask TextBox для того, чтобы сокращать MM/DD/YYYY или 00/00/0000 но может принимать месяц больше 12 и дата больше 31. Как я могу фильтровать месяц только до 12 и дата только до 31?

спросил(а) 2014-09-24T10:18:00+04:00 6 лет, 1 месяц назад
1
Решение
101

Пробовал работу вокруг этой проблемы, так что вот она. Mine вводит дату рождения пользователя, не может быть выше 12, а год должен быть меньше, чем в текущем году (не решили, как принять текущий год.

        private void Form1_Load(object sender, EventArgs e)
{
maskedTextBox1.Mask = "00/00/0000";
maskedTextBox1.ValidatingType = typeof(System.DateTime);
maskedTextBox1.TypeValidationCompleted += new TypeValidationEventHandler(maskedTextBox1_TypeValidationCompleted);

}

void maskedTextBox1_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
{
if (!e.IsValidInput)
{
MessageBox.Show("The data you supplied must be a valid date in the format mm/dd/yyyy.");
}
else
{

DateTime userDate = (DateTime)e.ReturnValue;
if (userDate >= DateTime.Now)
{

MessageBox.Show("The date in this field must be less or equal than today date.");
e.Cancel = true;
}
}
}

ответил(а) 2014-09-25T10:05:00+04:00 6 лет, 1 месяц назад
41

^([012]\d|30|31)/(0\d|10|11|12)/\d{4}$

используйте над регулярным выражением в своем переопределенном контроле.

ответил(а) 2014-09-24T10:31:00+04:00 6 лет, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема