C1DateEditの和暦表示に使用される年号を、独自に設定することができます。既定で定義されている年号(明治/大正/昭和/平成)以外を利用したい場合に便利です。
実装方法として、コードでJapaneseEraHelperクラスのAddJapaneseEraメソッドを使用して設定する方法と、アプリケーション構成ファイル(.config)を使用する方法の2通りが可能です。これらは、編集時/表示時のいずれの場合にも使用することができます。
AddJapaneseEraメソッドは、日本の暦に年号を追加するための関数です。各種パラメータを指定して、独自の年号を設定できます。
public static void AddJapaneseEra(int era, System.DateTime startTime, System.DateTime endTime, string eraName, string abbreviatedEraName, string englishEraName, string symbolEraName)
| パラメータ | 説明 |
|---|---|
| era | 年号の数値 ID。 |
| startTime | 年号の開始日。 |
| endTime | 年号の終了日。 |
| eraName | 年号の日本語名。 |
| abbreviatedEraName | 年号の日本語省略名。 |
| englishEraName | 英語の年号。オプション。 |
| symbolEraName | 1 文字の英字による年号。 |
以下に、AddJapaneseEraメソッドを使用して独自の年号を定義するサンプルコードを紹介します。
| Visual Basic |
コードのコピー
|
|---|---|
|
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load C1.Globalization.JapaneseEraHelper.ClearJapaneseEras() C1DateEdit1.Text = "2100/08/31" |
|
| C# |
コードのコピー
|
|---|---|
|
private void Form1_Load(object sender, EventArgs e) C1.Globalization.JapaneseEraHelper.ClearJapaneseEras(); c1DateEdit1.Text = "2100/08/31"; |
|
編集時/表示時に、年号がそれぞれ「新規01年08月31日」/「新01年08月31日」のように表示されます。
最初に .configに次のように定義を追加します。
| .config |
コードのコピー
|
|---|---|
| <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> <GrapeCityEra> <add key="1868 09 08" value="明治_明_M_1,M"/> <add key="1912 07 30" value="大正_大_T_2,T"/> <add key="1926 12 25" value="昭和_昭_S_3,S"/> <add key="1989 01 08" value="平成_平_H_4,H"/> <add key="2019 05 01" value="令和_令_R_5,H"/> <add key="2100 01 01" value="新規_新_N_6,N"/> </GrapeCityEra> </configuration> |
|
次いで、ReadErasFromGCConfigメソッドを使用した以下のようなコードを用いて上記定義を読み込みます。
| Visual Basic |
コードのコピー
|
|---|---|
|
C1DateEdit1.EditFormat.CalendarType = C1.Win.C1Input.CalendarType.JapaneseCalendar C1.Win.C1Input.JapaneseEraHelper.ReadErasFromGCConfig("GrapeCityEra") C1DateEdit1.Text = "2100/08/31" |
|
| C# |
コードのコピー
|
|---|---|
|
c1DateEdit1.EditFormat.CalendarType = C1.Win.C1Input.CalendarType.JapaneseCalendar; C1.Win.C1Input.JapaneseEraHelper.ReadErasFromGCConfig("GrapeCityEra"); |
|
(A)のケース同様、編集時/表示時に、年号がそれぞれ「新規01年08月31日」/「新01年08月31日」のように表示されます。