RTL语言中的C#CustomFormat DateTimePicker

时间:2011-02-19 22:16:53

标签: c# winforms datetimepicker datetime-format right-to-left

我得到DateTimePicker控制权。 我使用以下代码来设置控件的格式:

dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "HH:mm";

它解决了一个问题。我的计算机文化语言是RTL语言(希伯来语),所以我看到控件中的时间格式就像“mm:HH”一样,我写了“HH:mm”。它是由RTL文化引起的,所以我尝试了两种方法来解决它,但没有一种方法可以完全工作/工作。

我试过了:

System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = culture;
System.Threading.Thread.CurrentThread.CurrentUICulture = culture;

它根本没用。

我还尝试使用此代码检测其RTL语言:

CultureInfo.TextInfo.IsRightToLeft

然后将格式字符串从“HH:mm”反转为“mm:HH”(如果它的rtl语言)但后来我发现了另一个问题 - 在XP中如果它的RTL语言它会写出正确的格式..所以是的,我可以检测它是否是XP,但我认为这是太多的代码,简单需要......

是否有更简单的解决方案?

谢谢!

1 个答案:

答案 0 :(得分:2)

Windows 7和Server 2008 R2中的RTL语言存在DTP破坏。知识库文章is here,这个论坛的主题是滚动is here。对你的情况来说不完全是一个灌篮,但仍然令人信服。尝试它链接到的修补程序。