TextBox日期验证

时间:2013-03-09 08:07:40

标签: c# winforms date textbox cultureinfo

我使用以下代码进行短日期验证。

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

但是有一个小问题,如果用户输入1/1/1,输出看起来像01/01/2001。

如果用户输入1-1-1,则输出看起来像01/01/2001。由于我提供的格式。

现在我想要的是如果用户输入1-1-1,输出应该是01-01-2001。

2 个答案:

答案 0 :(得分:2)

试试这个:

dt.ToString(@"dd-MM-yyyy");

如果你想根据输入区分输出,我会建议:

if (textbox1.Text.Contains("/"))
{
    textBox1.Text = dt.ToString(@"dd/MM/yyyy");
}
else
{
    textBox1.Text = dt.ToString(@"dd-MM-yyyy");
}

答案 1 :(得分:0)

我不明白为什么在这种情况下使用TextBox而不是MaskedTextBox。 我建议你使用MaskedTExtBox。将两个MaskedTextBox从ToolBox拖放到您的Form并在FormLoadEvent中使用此代码

maskedTextBox1.Mask = "##/##/####";
maskedTextBox2.Mask = "##-##-####";