2016-11-05 17 views
1

私のシステム言語はアラビア語です。ウィンドウフォームにDateTimePickerコントロールを追加すると、アラビア語の月と日付が表示されます。私はそれを英語として表示したい、これまでのところ私は以下の方法を試したが、うまくいきませんでした。カレンダーコントロールにはアラビア語が表示されます。日付時間ピッカー文化情報inウィンドウフォーム

DTPの値は英語の形式で保存されますが、カレンダーコントロールの表示に問題があります。

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

Program.csにもスレッドのメソッドを追加しようとしましたが、フォームの読み込みにもかかわらず動作しませんでした。お知らせ下さい?

+0

OSのUI言語がアラビア語の場合、アラートUIのすべての「DateTimePicker」コントロールと「MonthCalendar」コントロールは、「SysDateTimePick32」と「SysMonthCal32」のラッパーにすぎないと考えられます。 –

+0

代わりに、オープンソースのFarsiLibraryを使用することもできます。ライブラリはFarsiLibraryと呼ばれますが、そのDateTimePickerおよびMonthViewコントロールはJalali(Shamsi/Persian)、Hijri(Qamari)およびGregorianカレンダーをサポートします。 [codeproject article](http://seesharpsoftware.com.au/farsilibrary-v2.6-now-available/)、[ページのライブラリ](http://seesharpsoftware.com.au/farsilibrary)のリンクです-v2.6-now-available /)と[nuget](https://www.nuget.org/packages/Farsi.Library/)パッケージに含まれています。 –

+0

ありがとうございます。システム言語がアラビア語の場合はカレンダーのUIを変更できないと思いますが、上記のコードを 'dtpBTStartDate.CustomFormat =" MM/dd/yyyy "で使用すると、コントロールで選択した日付を変更できます;月は大丈夫ですが、年はまだヒジュリです。 –

答えて

1

回答: OSのUI言語は、私はそれらのコントロールがSysDateTimePick32SysMonthCal32単なるラッパーであるため、すべてのDateTimePickerMonthCalendarコントロールは、アラビアUIで表示されます信じているアラビア語の場合。

注:代わりに、サードパーティのライブラリを使用することもできます。無料のオープンソースのFarsiLibraryはオプションです。ライブラリはFarsiLibraryと呼ばれますが、DateTimePickerコントロールとMonthViewコントロールはJalali(Shamsi/Persian)、Hijri(Qamari)、およびGregorianカレンダーをサポートしています。ここには、codeproject articlepage of the library、およびnuget packageのリンクがあります。

+0

私は、コントロールのUIを変更しないで、OSを使ってUIを決めることを好みます。 UIは、日付時刻を選択するための単なるインターフェイスです。次に、選択した日付がDateTimeになります。必要に応じて、選択した日付を使用して異なる文化の日付を計算することができます。 –

関連する問題