c#Datetime bound文本框删除起始0

时间:2014-06-08 20:39:31

标签: c# winforms datetime maskedtextbox

在c#Winforms中,我有一个文本框,它被数据绑定到我的数据库中的DateTime列。 当我在文本框中键入以下内容时

1977年5月12日

一旦文本框失去焦点,就会删除第一个0,以便它显示

1977年5月12日

这是一个问题的原因是因为我实际上想要使用蒙面文本框,因此/已经在用户的文本框中。但是一旦0被删除,日期就会变得混乱

51/21/977 _

日期仍然可以正确保存,但这会导致我的某些表单验证无法正常反应,因为它将屏蔽的文本框视为未完成。有人知道如何防止第一个0被删除吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

这只是文化信息的问题。由于我的文本框被数据化为DateTime变量,我所要做的就是更改DateTime显示为字符串的方法。我的GUI表单构造函数中的以下代码修复了问题

var culture = CultureInfo.CurrentCulture.Clone() as CultureInfo;
culture.DateTimeFormat.ShortDatePattern = "MM/dd/yyyy";
System.Threading.Thread.CurrentThread.CurrentCulture = culture;