2014-09-24 48 views
0

更新:編輯我的問題,爲了更好的理解我希望如何限制或Windows應用程序過濾器面膜文本框中輸入

設置我Mask TextBox屬性shortdate MM/DD/YYYY00/00/0000,但它可以接受每月超過12日期超過31歲。我怎樣才能將月份過濾到12,日期只有31?

+0

您可以在這個問題你的代碼? – Sam 2014-09-24 07:27:25

+0

@Sam在屬性中沒有代碼 – NatsuDragneel 2014-09-24 07:33:39

+0

@Sam掩碼文本框的屬性下面有'Mask' – NatsuDragneel 2014-09-24 07:36:40

回答

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

在覆蓋控件中使用上面的正則表達式。

+0

你可以指定如何做到這一點?我應該把它放在哪裏? – NatsuDragneel 2014-09-24 07:33:12

+0

在文本框的屬性窗口中,會出現蒙板文本框的正則表達式屬性。把它放在那裏。 – 2014-09-24 07:35:49

+0

我無法在「遮罩文本框」屬性中找到它。 – NatsuDragneel 2014-09-24 07:38:33

0

嘗試瞭解決這個問題的方法,所以在這裏。我的是輸入用戶的出生一個月不能超過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; 
      } 
     } 
    }