在c#Winforms中,我有一个文本框,它被数据绑定到我的数据库中的DateTime列。 当我在文本框中键入以下内容时
1977年5月12日
一旦文本框失去焦点,就会删除第一个0,以便它显示
1977年5月12日
这是一个问题的原因是因为我实际上想要使用蒙面文本框,因此/已经在用户的文本框中。但是一旦0被删除,日期就会变得混乱
51/21/977 _
日期仍然可以正确保存,但这会导致我的某些表单验证无法正常反应,因为它将屏蔽的文本框视为未完成。有人知道如何防止第一个0被删除吗?
谢谢!
答案 0 :(得分:1)
这只是文化信息的问题。由于我的文本框被数据化为DateTime变量,我所要做的就是更改DateTime显示为字符串的方法。我的GUI表单构造函数中的以下代码修复了问题
var culture = CultureInfo.CurrentCulture.Clone() as CultureInfo;
culture.DateTimeFormat.ShortDatePattern = "MM/dd/yyyy";
System.Threading.Thread.CurrentThread.CurrentCulture = culture;