TextBox日期验证
问题描述:
我使用以下代码进行短日期验证。TextBox日期验证
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。
答
试试这个:
dt.ToString(@"dd-MM-yyyy");
如果你想根据输入diferentiate输出,我建议这样的:
if (textbox1.Text.Contains("/"))
{
textBox1.Text = dt.ToString(@"dd/MM/yyyy");
}
else
{
textBox1.Text = dt.ToString(@"dd-MM-yyyy");
}
答
我不明白,为什么你正在使用文本框代替MaskedTextBox在这种情况下。 我会建议你为此使用MaskedTExtBox。拖放从工具箱2个MaskedTextBox中到表单,并在FormLoadEvent使用此代码
maskedTextBox1.Mask = "##/##/####";
maskedTextBox2.Mask = "##-##-####";
尝试使用maked文本框....它是一个更好的选择.... – 2013-03-09 08:12:35
不管是什么格式的用户输入的日期 - >在将字符串解析为DateTime之后 - >它始终以相同的方式显示。因为它是相同的日期时间值 - >只有输入是不同的。 – ub1k 2013-03-09 08:17:12
@sree aneev所以你想根据输入权得到输出?意味着如果你输入01/01/2001的1/1/1,并且用户输入1-1-1你想要01-01-2001。是这样吗??? – kashif 2013-03-09 09:20:21