C # CustomFormat DateTimePicker на языке RTL - PullRequest
0 голосов
/ 20 февраля 2011

Я получил DateTimePicker контроль. Я использовал следующий код для установки формата элемента управления:

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

это работало с одной проблемой. Мой язык компьютерной культуры - это язык RTL (иврит), поэтому я вижу формат времени в элементе управления, например, «мм: ЧЧ», хотя я написал «ЧЧ: мм». Это вызвано культурой 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

и затем изменить строку формата с "ЧЧ: мм" на "мм: ЧЧ" (если это язык rtl), но затем я обнаружил другую проблему - в XP, если на языке RTL он будет писать правильный формат ... так да, я могу определить, если это XP или нет, но я думаю, что это слишком много кода для простой необходимости ...

Есть ли более простое решение?

Спасибо!.

1 Ответ

2 голосов
/ 20 февраля 2011

Был сбой DTP для языков RTL в Windows 7 и Server 2008 R2. Статья КБ здесь , ветка форума, которая получила этот шар здесь . Не совсем хлам для вашего случая, но тем не менее убедительный. Попробуйте исправление, на которое оно ссылается.

...