更改DateTimePicker日历运行时

本文关键字:运行时 日历 DateTimePicker 更改 | 更新日期: 2023-09-27 18:14:48

我想在另一种文化中查看日历,例如让它显示进来阿拉伯语。我在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日历运行时

当您在。net框架、Visual Studio 2005或Visual Studio .NET中创建本地化应用程序时,DateTimePicker和MonthCalendar控件不反映应用程序主执行线程的CurrentUICulture属性

您可以在运行时更改日期选择器区域性和格式。例如,下面的代码将格式更改为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;

另一方面,使用此命令将日期选择器的文化和日期格式更改为沙特阿拉伯:

    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;

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

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