更改DateTimePicker日历运行时

时间:2011-11-15 18:45:48

标签: c# .net windows c#-4.0

我想在另一种文化中查看日历,例如让它显示出来 阿拉伯。我在Main中使用此代码,但日历仍然相同 培养:

CultureInfo sa = new CultureInfo("ar-SA", false);
sa.DateTimeFormat.Calendar = new System.Globalization.HijriCalendar();
// Sets the culture to Arabic (Saudi Arabia)
Thread.CurrentThread.CurrentCulture = sa;
// Sets the UI culture to Arabic (Saudi Arabia)
Thread.CurrentThread.CurrentUICulture = sa;

我在表单上添加DateTimePicker,并期望它显示日期 运行后的阿拉伯语,但DateTimePicker或日历未更改为 那种文化。

3 个答案:

答案 0 :(得分:2)

在.NET Framework,Visual Studio 2005或Visual Studio .NET中创建本地化应用程序时,DateTimePicker and MonthCalendar控件不反映应用程序主执行线程的CurrentUICulture属性

答案 1 :(得分:2)

您可以在运行时更改datepicker文化和格式。例如,以下内容将格式更改为en-US:

    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
    dateTimePicker1.Format = DateTimePickerFormat.Custom;
    dateTimePicker1.CustomFormat = Application.CurrentCulture.DateTimeFormat.ShortDatePattern;

另一方面,使用此功能将datepicker的文化和日期格式更改为沙特阿拉伯:

    Thread.CurrentThread.CurrentCulture = new CultureInfo("ar-SA");
    System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("ar-SA");
    dateTimePicker1.Format = DateTimePickerFormat.Custom;
    dateTimePicker1.CustomFormat = Application.CurrentCulture.DateTimeFormat.ShortDatePattern;

答案 2 :(得分:0)

这会更改DateTimePicker的显示格式 - 而不是扩展视图中的日期。

  CultureInfo ci = new CultureInfo("ar-SA");
  DateTimeFormatInfo info = ci.DateTimeFormat;
  dateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
  dateTimePicker1.CustomFormat = info.ShortDatePattern + " " + info.ShortTimePattern;