c# – 如何在MonthCalendar控件中显示泰国日历,无论当前文化如何

我正在研究c#
winforms.

我在
Windows窗体上采用了MonthPicker控件.

无论在用户桌面计算机上设置何种文化,我都想显示泰式日历,如下图所示.

当用户的机器文化设置为英语时,它显示英文日历.
当用户的机器文化设置为泰语时,它显示泰国日历.在这两种情况下我都想要泰历.

我在InitializeComponent()之前尝试使用下面的代码行但没有获得所需的输出.
我正在做的是否有任何错误或是否还有其他方法可以实现相同的目标?

system.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("th-TH");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("th-TH");

最佳答案 虽然在
MS Support article regarding VS 2005 and .NET 2.0中提到它,但您可能正在处理它描述的相同问题:

This behavior occurs because the DateTimePicker control and the MonthCalendar control are Microsoft Windows common controls. Therefore, the operating system’s user locale determines the user interface of these controls.

检查这一点的一种方法当然是更改操作系统的用户区域设置.看看你的MonthCalendar是否跟随变化.

我不知道如何解决MonthCalendar控件对操作系统用户区域设置的偏好,但您可能考虑的一种可能性是替代的区域设置感知日历控件.

例如,locale-aware calendar control described on CodeProject听起来很有希望.第三方(例如Telerik,Infragistics etcetera)日历控件也可能产生一些东西.

点赞