0

我想用作 DatetimePicker。我想验证日期格式。我正在使用按键事件进行验证。以下代码是在 KeyPress 事件中编写的。

 DateTime temp;
        if (DateTime.TryParse(textBox1.Text, out temp))
        { textBox1.Text = temp.ToShortDateString(); }
        else
        { errorProvider1.SetError(textBox1, "Format dd/MM/yyyy"); }

但是在输入日期和月份后,它会自动给出年份,我也不希望这样。

用户可以输入完整日期。

4

3 回答 3

0
DateTime dt = DateTime.Now;
        Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-FR");
        if(DateTime.TryParse(textBox1.Text,out dt))
        {textBox1.Text =dt.ToShortDateString();}

在离开事件它工作正常......,

于 2013-03-09T07:40:55.643 回答
0

尝试使用LostFocusLeave事件而不是KeyPress事件。

于 2013-03-09T06:23:20.823 回答
0

试试下面的 Javascript 代码:不需要 .Net 实现:

function isValidDate(date){
var matches = /^(\d{2})[-\/](\d{2})[-\/](\d{4})$/.exec(date);
if (matches == null) return false;
var d = matches[2];
var m = matches[1] - 1;
var y = matches[3];
var composedDate = new Date(y, m, d);
return composedDate.getDate() == d &&
        composedDate.getMonth() == m &&
        composedDate.getFullYear() == y;
}
console.log(isValidDate('10-12-1961'));
console.log(isValidDate('12/11/1961'));
console.log(isValidDate('02-11-1961'));
console.log(isValidDate('12/01/1961'));
console.log(isValidDate('13-11-1961'));
console.log(isValidDate('11-31-1961'));
console.log(isValidDate('11-31-1061'));

使用此函数 onKeyPress 事件。如果没有工作评论。

问候..

于 2013-03-09T06:37:49.883 回答