如何在Windows应用程序中限制或筛选Mask TextBox中的输入
本文关键字:筛选 Mask TextBox 输入 Windows 应用程序 | 更新日期: 2023-09-27 18:24:22
更新:编辑了我的问题以更好地理解我希望
我将我的Mask TextBox
属性设置为短日期MM/DD/YYYY
或00/00/0000
,但它可以接受大于12的月份和大于31的日期。如何将月份仅筛选为12,日期仅筛选为31?
^([012]'d|30|31)/(0'd|10|11|12)/'d{4}$
在重写的控件中使用上面的正则表达式。
尝试了解决这个问题的方法。我的方法是输入用户的出生日期月份不能高于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's date.");
e.Cancel = true;
}
}
}