0

DatetimePickerとして使用したい。日付形式を検証したい。keypressイベントを使用して検証しています。次のコードは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

イベントの代わりにLostFocusまたはイベントを使用してみてください。LeaveKeyPress

于 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 に答える
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();}

Leaveイベントでは正常に動作します...、

于 2013-03-09T07:40:55.643 に答える